物件導向 類的繼承

2021-06-08 02:52:55 字數 823 閱讀 3863

1、派生類物件的構造與析構

建立派生類物件的時候首先呼叫基類的建構函式初始化基類成員,隨後才呼叫派生類建構函式

派生類物件的析構過程首先是呼叫派生類的析構函式,再呼叫基類的析構函式

2、多重繼承

b、c都繼承於a,而d繼承於b和c

多重繼承的兩義性:當d的物件呼叫a中的成員時就會產生兩義性(d-b-a還是d-c-a)

使用虛繼承就可以消除這種兩義性class b:virtual public a    class c:virtual public a

3、虛函式

虛函式使得編譯器實現了動態聯編,即在執行時確定呼叫哪個函式,實現了多型

建構函式不能是虛函式,因為構造的時候,物件還是一片未定型的空間,只有構造完成後,物件才是具體類的例項

靜態成員函式不能是虛函式,因為靜態成員函式的特點是不受限制於某個物件

內聯(inline)函式不能是虛函式,因為內聯函式不能在執行中動態確定位置

析構函式可以是虛函式,而且通常聲名為虛函式,這樣做的好處是能夠保證按照正確的順序析構物件(先析構派生類物件,再析構基類物件),否則容易造成記憶體洩露

4、抽象類和純虛函式

抽象類不能構造類的例項物件,只能被子類繼承

純虛函式  virtual  void  func()=0;

5、類的繼承訪問控制

在繼承關係中,基類的private 成員不但對應用程式隱藏,即使是派生類也是隱藏不可訪問的,而基類的保護成員只對應用程式隱藏,對於派生類來說是不隱藏的

私有繼承中,在派生類中可以訪問基類的public和protected成員,不能訪問private成員,但是派生類的物件不能訪問基類的任何成員。

Python物件導向 類的繼承

基本概念 物件導向三要素之一,繼承inheritance 上例可以看出,通過繼承 貓類不同寫 直接繼承了父類的屬性和方法。繼承 定義格式如下 class 子類名 基類1 基類2,語句塊如果類定義時,沒有基類列表,等同於繼承自object。在python3中object類是所有物件的根基類 class...

python物件導向 類的繼承

子類 son類 父類 father類 以下案例均表示son類繼承父類的一些屬性和初始化引數構造等。5個模組 1 直接呼叫父類屬性方法 2 重寫父類屬性方法 3 強制呼叫父類私有屬性方法 4 呼叫父類的 init 方法 5 繼承父類初始化過程中的引數 class father def init sel...

物件導向程式設計 繼承 類式繼承

定義 讓子類的原型指向父類的例項 1,宣告父類 function superclass superclass.prototype.getsupervalue function 2,宣告子類 function subclass 3,繼承父類 關鍵 subclass.prototype new supe...