繼承分為兩部分,介面繼承和實現繼承。
實現繼承:表示乙個新類派生於基類,他享有基類中所有的函式和字段(對基類私有函式和字段不可訪問)。
介面繼承:表示乙個型別只繼承了函式的簽名,沒有繼承任何的實現**,通常用於具有某種特定的屬性的時候使用它。
virtual(虛方法)
如果繼承類想要重寫基類的方法,可以把基類的方法寫成虛方法,在繼承類中採用override關鍵字重寫。
abstract(抽象方法和抽象類)
抽象類不能例項化,抽象類中的的函式,只有函式的宣告,沒有具體的實現**,必須要在子類中重寫,採用override關鍵字重寫該函式。只能在抽象類中定義抽象函式。
virtual和抽象的區別和聯絡
派生類建構函式:層次類的結構中(多層級繼承),例項化的順序是先例項化最底層的基類,然後依次向上的例項化子類,直至要例項化的類為止。
擴充套件型別:如果乙個已知的類(person類)沒有原始碼,並且無法實現重寫和繼承,可以採用擴充套件型別對類進行擴充套件,建立乙個靜態類,新增乙個靜態方法。
public static class newperson
}newperson類中this關鍵字指明要擴充套件的類的型別person型別,在此方法中可以訪問person類的方法和屬性。這樣在定義person類的時候就可以直接訪問sayname的函式。
person p=new person();
p.sayname("text")
繼承和擴充套件
odoo 提供了三種不同的機制以模組化的方式來擴充套件模組 類繼承 class inheritance 用來新增功能 新類相容現有的檢視 儲存在同一張表中 原型繼承 prototype inhertiance 用於拷貝賦值功能 現有檢視忽略新類 儲存在不同的表中 委託繼承 delegation in...
C 中的介面繼承和實現繼承
c 中的繼承基於乙個事實 父類定義的成員函式會一直被子類繼承 包括被子類隱藏的部分 而父類中提供的函式可以有三種 1 純虛函式,2 普通虛函式 3 普通成員函式。這三種函式型別代表了三種繼承設計模式。乙個簡單的例項 如下 class shape class rectangle public shap...
C 區分介面繼承和實現繼承
利用public繼承基類,可以將繼承的結果分為兩類 函式介面繼承和函式實現繼承 宣告乙個純函式的目的是為了讓派生類只繼承函式介面 純虛函式有兩個突出的特性 它們必須被任何 繼承了它們 的具體類重新宣告,而且它們在抽象類中通常沒有定義 宣告非純虛函式的目的,是讓派生類繼承該函式的介面和預設實現 宣告非...