面向兌現程式設計(四) 多型

2021-09-21 01:35:35 字數 789 閱讀 9517

多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。

c++ 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。

下面的例項中,基類 shape 被派生為兩個類,如下所示:

#include using namespace std;

class shape

int area()

當上面的**被編譯和執行時,它會產生下列結果:

parent class area

parent class area

導致錯誤輸出的原因是,呼叫函式 area() 被編譯器設定為基類中的版本,這就是所謂的靜態多型,或靜態鏈結- 函式呼叫在程式執行前就準備好了。有時候這也被稱為早繫結,因為 area() 函式在程式編譯期間就已經設定好了。

但現在,讓我們對程式稍作修改,在 shape 類中,area() 的宣告前放置關鍵字virtual,如下所示:

class shape 

virtual int area()

// pure virtual function

virtual int area() = 0;

};

= 0 告訴編譯器,函式沒有主體,上面的虛函式是純虛函式

物件導向程式設計 多型

多型 多種狀態 的基本介紹 方法或物件具有多種形態,是物件導向的三大特徵,多型是建立在封裝和繼承的基礎之上的。多型的具體體現 1 方法的多型 2 物件的多型 乙個物件的編譯型別和執行型別可以不一致 編譯型別在定義物件時就確定了不能改變 執行型別是可以改變化的 編譯型別看定義時 號 的左邊,執行型別看...

python之物件導向程式設計 四 多型與抽象

物件導向程式設計中多型指的是一種資料型別有多種形態。類示例 class animal kind 動物 def init self,name self.name name defeat self print f 正在進食!class cat animal def init self,name,coun...

c 物件導向程式設計 多型

多型 即指多個不同的類對同乙個方法的不同實現。多型允許子類對從父類繼承的方法進行重新實現 多型的使用在c 中,子類使用new關鍵字來隱藏父類成員,通過方法的隱藏和方法的重寫實現多型。第一種方法的隱藏 實際呼叫父類方法 定義人類,包含工作方法 class person 定義醫生類和程式設計師類 cla...