繼承與多型

2021-08-14 05:53:52 字數 778 閱讀 5171

物件導向的三個基本特徵是:封裝、繼承、多型。

import says

sys.getrefcount(t)

可以得到乙個物件有多少次引用

繼承:子類繼承父類,子類可以使用父類的屬性和方法,簡化**;

當生成子類物件時,先初始化父類物件,所以如果父類有

_ _init_ _()方法時,並且有屬性,要通過子類的構造賦值;

乙個類可以有多個子類,在子類中呼叫父類的屬性時,在_ _init_ _方法中使用父類.屬性,或者self.屬性

呼叫父類方法時,super().父類方法()

總結:當子類繼承父類時,子類的構造方法應該包含父類與子類共同的屬性,在子類的初始化方法中,將父類的屬性傳遞給父類,子類的屬性賦值給子類

方法重寫:

子類繼承父類時,子類的方法()和父類一樣,此時子類重寫了父類的方法,當生成子類物件時,呼叫的是子類的重寫方法

三代繼承:子類初始化方法需要祖父類、父類及自己的屬性,可以呼叫父類的初始化方法傳參,可以重寫父類的方法,構造的順序:先構造祖父類,再構造父類,最後是自己

類名. mro() , 搜查所有的父類,即搜尋順序

當物件沒在使用,或程式結束的時候,就啟用_ _del_ _方法;在子類中,呼叫父類的方法,在_ _init_ _中使用父類.屬性;或self.屬性 或父類 . _ _init_ _(self,引數)  ;或super(self,引數) . _ _init_ _

有方法重寫,才會有多型

繼承與多型

繼承 繼承是c 語言支援 重用及多型的重要機制。通過繼承,可以繼承可以在現有類的基礎上派生出新類,新類將共享現有類的成員,並且還可以新增新的成員。c 語言中,重用主要表現為可以使用現成的類 如.net框架類庫中的類 來定義新類,主要方法有組合和繼承兩種 繼承是物件導向程式設計支援 重用的另乙個重要機...

繼承與多型

虛函式只要在基類裡定義,所以繼承類都不用重新定義為虛函式,自動成為虛函式。虛函式必須有實現,普通成員函式在沒有呼叫時可以沒有實現 定義 class animal 只需要在基類定義函式為虛,子類中不需要新增virtual.smile函式在沒有呼叫時可以不實現。當有函式為虛函式時,析構函式應定義為vir...

繼承與多型

繼承需要符合的關係 is a,父類更通用 子類更具體 子類繼承父類的所有屬性和方法 不包括父類構造方法 super可以呼叫父類的方法和構造方法 子類可以重寫父類的方法 使用多型之後,當需要增加新的子類型別時,無需更改總部類,程式的可擴充套件性及可維護性增強 簡單來說,多型是具有表現多種形態的能力的特...