#include<iostream> using namespace std; /* 总结多态性几个要点: 1、一定要有虚函数,非虚函数不能实现多态 2、子类一定要改写父类的虚函数,不改写不能实现多态 3、必须用父类指针指向子类对象来调用虚函数,直接用子类指针 来调用不是多态性,而只是普通调用 4、有一个纯虚函数的类就叫抽象类 5、虚函数里面可以写代码,且需要声明 */ class Shape { public: void draw() { cout<<"Shape draw()"<<endl; } //virtual void draw()=0; //有纯虚函数的类是抽象类 virtual void a() //一定要有虚函数 { cout<<"Shape a()"<<endl; } }; class ReTangle : public Shape { public: void draw() { cout<<"ReTangle draw()"<<endl; } void a() { cout<<"ReTangle a()"<<endl; }; }; void main() { //必须用父类指针指向子类对象来调用虚函数 Shape *rt =new ReTangle(); rt->draw(); Shape *p =new ReTangle(); p->a(); }