以下是一個簡單的比喻,將多態概念與生活中的實際情況相聯系:
比喻:動物園的講解員和動物表演
想象一下你去了一家動物園,看到了許多不同種類的動物,如獅子、大象、猴子等。現在,動物園里有一位講解員,他會為每種動物表演做簡單的介紹。
在這個場景中,我們可以將動物比作是不同的類,而每種動物表演則是類中的函數。而講解員則是一個基類,他可以根據每種動物的特點和表演,進行相應的介紹。
具體過程如下:
定義一個基類?Animal,其中有一個虛函數perform(),用于在子類中實現不同的表演行為。
代碼:
#include <iostream>using namespace std;class Animal
{
public:virtual void perform() = 0;virtual ~Animal(){}
};class Type:public Animal
{
private:string name;string food;
public:Type(string name,string food):name(name),food(food){}void perform(){cout << "這個動物的名字是:" << name << endl;cout << "喜歡吃:" << food << endl;}
};int main()
{Animal *p;Type s1("monkey","banana");p = &s1;p->perform();Type s2("tiger","meat");s2.perform();delete p;p = nullptr;return 0;
}
運行結果:
思維導圖: