多态的特点。并用代码举例说明
时间: 2024-06-17 20:07:04 浏览: 120
多态是面向对象编程中的一个重要特性,它允许不同类的对象对同一消息做出不同的响应。其主要特点包括:
1. 重载多态:指在同一个类中,函数名相同但参数列表不同的函数之间的关系。这种情况下,编译器会根据函数的参数列表自动选择相应的函数。
2. 子类型多态:指父类对象可以引用子类对象,且程序调用的方法是子类重写了父类的方法,这样在运行时就能够自动地选择适当的方法。
3. 参数多态:指函数能够接受任意类型的参数。这种情况下,编译器会根据参数类型自动选择相应的函数。
下面是一个使用C++实现多态特性的示例代码:
```
#include <iostream>
using namespace std;
class Animal {
public:
virtual void makeSound() { // 定义虚函数
cout << "Animal makes sound" << endl;
}
};
class Cat : public Animal {
public:
void makeSound() { // 重写父类虚函数
cout << "Cat meows" << endl;
}
};
class Dog : public Animal {
public:
void makeSound() { // 重写父类虚函数
cout << "Dog barks" << endl;
}
};
int main() {
Animal *a1 = new Cat(); // 父类指针指向子类对象
Animal *a2 = new Dog();
a1->makeSound(); // 调用子类重写的虚函数
a2->makeSound();
return 0;
}
```
以上代码中,父类Animal定义了一个虚函数makeSound(),而其子类Cat和Dog分别重写了该虚函数。在main函数中,用父类指针分别指向子类对象,并调用各自的makeSound()方法,最终输出结果为:
```
Cat meows
Dog barks
```
阅读全文