1.多态是面向对象的三大特性之一,字面意思是多种状态,可以看成是接口的多种不同实现方式。
2.实现多态的步骤:
①子类重写父类的虚函数;
②父类的指针或者引用绑定到子类的对象上;
③通过父类的指针或者引用调用所绑定的子类重写过的函数。
3.代码如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
class Animal {
public:
//这个virtual很关键,代表虚函数。不加则是静态多态,子类都会调用父类的eat函数
virtual void eat();
};
class Dog:public Animal
{
public:
void eat();
};
class Cat :public Animal
{
public:
void eat();
};
void Animal::eat()
{
cout << "animal eat" << endl;
}
void Dog::eat()
{
cout << "dog eat" << endl;
}
void Cat::eat()
{
cout << "cat eat" << endl;
}
void eatFun(Animal* animal)
{
animal->eat();
}
int main()
{
Dog dog;
eatFun(&dog);
Cat cat;
eatFun(&cat);
return 0;
}