多态性能夠簡單的概括為“1個接口,多種方法”,在程式執行的過程中才決定調用的機制
程式實作上是這樣,通過父類指針調用子類的函數,能夠讓父類指針有多種形态。
多态性:在基類的一個函數前加一個virtual能夠實作c++的多态性,意思是子類有的,調用子類的,子類沒有的調用基類的
class Animal()
{
virtual void breath() //加上virtual表示的是虛函數 ,意思是子類有的,調用子類的,子類沒有的調用基類的.
cout<<"animal"<<endl;
}
void sleep()
cout<<"sleep"<<endl;
virtual void eat() = 0; //這樣定義表示的是純虛函數 ;既沒有實作函數體.含有純虛函數的類是抽象類.假設子類不實際eat()方法,也變得抽象類.
//{
// cout<<"animaleat"<<endl;
//}
class fish():public Animal()
void breath()
cout<<"fish"<<endl;
void fn(Animal *pAn)
pAn->breate();
virtual void eat(); //這裡實際了基類的純虛函數
cout<<"fish eat"<<endl;
void main()
fish fh;
Animal *pAn;
pAn = &fh;
fh(pAn);