java的多态性:
java的多态性要满足三个条件:1、继承关系;2、在子类重写父类的函数;3、父类引用指向子类对象,即 animal p=new dog();
c++的多态性:
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();// 输出"狗叫声。。。"