多型的學習筆記

2021-08-07 12:56:56 字數 684 閱讀 3845

多型:不同的物件可以執行相同的動作,但是是使用它們自己實現的方法來完成;

可以理解為:父類和子類都實現了乙個相同的方法

當將乙個子類當做父類來使用的時候:注意:子類以父類的身份出現,此時它的型別是父類;子類在工作的時候使用自己的方法而不是父類的方法(即使它已經被當做父類了);子類此時已經'是'父類了,子類特有的屬性和方法(即父類沒有的屬性和方法)不能使用:例:c++函式呼叫中對乙個引數要求為父類的函式傳遞了乙個子類引數,則該子類的特有部分被截斷,體現了:子類已經'是『父類了、子類特有屬性和方法不能呼叫、子類所使用的方法是它自己實現的而不是父類的;

多型時,子類is-a父類;

在乙個類內有同名方法:那叫方法過載,注意區分多型;

多型的應用場景:使用子類的override方法來替代父類的virtual方法;

多型性指相同物件收到不同訊息或不同物件收到相同訊息時產生不同的實現動作。c++支援兩種多型性:編譯時多型性,執行時多型性。

a.編譯時多型性: 通過函式過載和運算子過載來實現的。

b 執行時多型性:通過繼承和虛函式來實現的。

函式過載可以理解為編譯時多型,也是多型的一種

動態繫結就是發生在多型;

動態繫結:根據執行時型別(而不是編譯時型別)來確定使用對應子類的對應虛方法,就是確認使用哪個虛方法的過程;

編譯時型別:基類型別;

執行時型別:某個子類的型別;

C 學習筆記之多型 多型的學習 多型學習

c 學習筆記之多型 多型的學習 多型學習 多型分為兩類 靜態多型 函式過載和運算子過載屬於靜態多型,復用函式名 動態多型 派生類和虛函式實現執行時多型 靜態多型和動態多型的區別 靜態多型的函式位址早繫結 編譯階段確定函式位址 動態多型的函式位址晚繫結 執行階段確定函式位址 動態多型滿足條件 動態多型...

多型學習筆記

多型 定義 某一類事物的多種存在形態。例 動物裡的貓,狗。貓這個物件對應的型別是貓型別 貓x new 貓 同時貓也是動物中的一種,也可以把貓稱為動物。動物 y new 貓 動物是貓和狗具體事物中抽取出來的父型別。父型別引用指向了子類物件。物件的向上轉型 animal a newdog 物件的向下轉型...

學習筆記 多型

1 物件的靜態型別 物件在宣告時採用的型別。是在編譯期確定的。2 物件的動態型別 目前所指物件的型別。是在執行期決定的。3 靜態繫結 前期繫結 在程式執行前已經被繫結,物件的屬性使用的是靜態繫結。4 動態繫結 後期繫結 在執行時根據具體物件的型別進行繫結,物件的方法一般都屬於動態繫結。static和...