它可以提供一個通過用的接口,同樣調用一個方法,
由于運算對象不同,方法也不同,這也就是所謂的動态綁定。
#include <iostream>
#include <stdio.h>
using namespace std;
class Animal
{
public:
virtual void Cry()=0;
};
/*
void Animal::Cry()
{
cout<<"base class"<<endl;
}
*/
class Dog:public Animal
{
public:
virtual void Cry()
{
cout<<"wang,wang"<<endl;
}
};
class Cat:public Animal
{
public:
virtual void Cry()
{
cout<<"miao miao"<<endl;
}
};
int main()
{
Animal* animalone = new Dog;
animalone->Cry();
delete animalone;
animalone = new Cat;
animalone->Cry();
Dog dog;
dog.Cry();
Cat cat;
cat.Cry();
return 0;
}
