繼承和多型

2021-08-04 17:07:58 字數 1550 閱讀 3197

1.定義:繼承是物件導向復用的重要手段,是型別之間的關係建模,共享共有的東西,實現各自本質不同的東西。

三種繼承關係下基類成員在派生類發生的訪問關係變化:

例:

#include#includeusing namespace std;

class person

void display()

protected:

string _name; // 姓名

};

class student : public person

;int main()

總結:

1. 基類的私有成員在派生類中是不能被訪問的,如果一些基類成員不想被基類物件直接訪問,但需要在派生類中能訪問,就定義為保 護成員。可以看出保護成員限定符是因繼承     才出現的。 

2. public繼承是乙個介面繼承,保持is-a原則,每個父類可用的成員對子類也可用,因為每個子類物件也都是乙個父類物件。 

3. protetced/private繼承是乙個實現繼承,基類的部分成員並未完全成為子類介面的一部分,是 has-a 的關係原則,所以非特殊情 況下不會使用這兩種繼承關係,在絕大多數的     場景下使用的都是公有繼承。

4. 不管是哪種繼承方式,在派生類內部都可以訪問基類的公有成員和保護成員,但是基類的私有成員存在但是在子類中不可見(不能 訪問)。 

5. 使用關鍵字class時預設的繼承方式是private,使用struct時預設的繼承方式是public,不過最好顯示的寫出繼承方式。 

6. 在實際運用中一般使用都是public繼承,極少場景下才會使用protetced/private繼承.

2. 賦值相容規則
1. 子類物件可以賦值給父類物件(切割/切片)
2. 父類物件不能賦值給子類物件
3. 父類的指標/引用可以指向子類物件
4. 子類的指標/引用不能指向父類物件(可以通過強制型別轉換完成)
class a

;class b :public a

;int main()

;class b :public a

;//隱藏/重定義

int main()

;class b :public a

;class c :public a

;class d :public b, public c

;//物件模型:記憶體當中的分布

繼承和多型

物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...

繼承和多型

物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...

繼承和多型

類還有乙個重要的特性就是繼承,什麼是繼承?它又有什麼作用呢?繼承最主要的目的就是為了擴充套件原類的功能,加強或改進原類所沒有定義的屬性及方法。例如我們有狗這個類,可是狗的種類還是有很多,比如說博美狗,聖伯納,柴犬等等,如果只用狗一種類來定義所有種類狗的屬性及方法,那麼用這個類所產生出來的物件一定會有...