c++和java的多态性的差别
c++和java的多态性的区别
java的多态性:
java的多态性要满足三个条件:1、继承关系;2、在子类重写父类的函数;3、父类引用指向子类对象,即 animal p=new dog();
c++的多态性:
java的多态性:
java的多态性要满足三个条件:1、继承关系;2、在子类重写父类的函数;3、父类引用指向子类对象,即 animal p=new dog();
c++的多态性:
c++的多态性要满足三个条件:1、继承关系;2、父类函数有virtual关键字,在子类重写父类的函数;3、父类指针指向子类对象,即 animal *p=new dog(); 或 dog d; animal *p=&d;
c++多态的例子:
class animal { public: virtual void enjoy() { cout << "叫声。。。" << endl; } }; class dog:public animal { public: void enjoy() { cout << "狗叫声。。。" << endl; } }; class lady { public: animal *a; lady(animal *oo) :a(oo){} void jiao() { a->enjoy(); } }; //测试代码 dog D; animal *g = new dog();//animal *g = &D;也是可以的,dog对象不一定要在堆里 lady Lady(g); Lady.jiao();// 输出"狗叫声。。。"