11.1 繼承的概念
繼承是物件導向程式設計的重要特徵,也是物件導向是程式設計的基石。
11.2 單繼承
11.2.1 基本語法
1.吸收基類成員:派生類接收了基類當中除了建構函式、折構函式和賦值運算子過載函式之外的所有成員。
2.改造基類成員:乙個可以通過繼承方式改變對基類成員的控制,二者如果派生類中宣告了和基類相同的成員,則會隱藏基類中的成員。
3.新增新成員:保證派生類在功能上有所發展和改進。
單繼承的語法如下:
class派生類名:繼承方式 基類名
;11.2.2 訪問許可權與繼承方式
每個類都要通過public 、protected和private來控制外部對其成員的訪問,從而保證了對封裝的需要,實現了資訊的隱藏,**拉使用者的使用。
11.2.3 派生類的建構函式和折構函式
1.建構函式
激烈的建構函式並沒有繼承下來,要完成這些工作,就必須給派生類新增新的建構函式.派生類建構函式的一般語法形式為:
派生類名 ::派生類名(參數列):基類名(基類初始化參數列)
2.拷貝建構函式
和建構函式一樣,派生類也沒有將拷貝建構函式從基類繼承下來。
3.折構函式
在派生過程中,基類的折構函式也不能繼承,如果需要折構時,就要在派生類中定義新的折構函式。
4.隱藏
在類的派生層次中,基類和派生類都有自己的作用域,基基類的作用域包含了派生類的作用域,因為派生類是基類的一種。
11.3 多繼承
11.3.1多繼承的概念運用
多繼承的繼承語法如下:
class派生類名:繼承方式1 基類1,繼承方式2基類2,…,繼承方式n 基類n
;1.呼叫基類建構函式,他們被他們被繼承時的宣告順序。
2.對派生類新增的成員物件初始化,在它們在類中宣告的先後順序。
3.執行派生類自身的建構函式。
11.3.2 虛基類
class a
;class b
;class c:public a,publicb
;11.4 多型
11.4.1多型的概念
多肽是的態是物件導向設計的態是物件導向設計的重要特徵之一,它與抽象、封裝、繼承共同構成了物件導向設計的四大特徵。
11.4.2 虛函式
實現執行時多型需要在基類中將函式宣告為虛基類,也就是在函式函式宣告中前加關鍵字virtual。
虛基類宣告的語法如下:
virtual函式型別 函式名(形參表);
11.4.3 純虛函式和抽象類
純虛函式積累中沒有定義具體操作的虛寒基類中沒有定義具體操作的虛函式,要求必須在派生類中根據給出個自定義。
純虛函式的宣告語法:
virtual 函式型別 函式名(參數列)=0;
繼承與多型
繼承 繼承是c 語言支援 重用及多型的重要機制。通過繼承,可以繼承可以在現有類的基礎上派生出新類,新類將共享現有類的成員,並且還可以新增新的成員。c 語言中,重用主要表現為可以使用現成的類 如.net框架類庫中的類 來定義新類,主要方法有組合和繼承兩種 繼承是物件導向程式設計支援 重用的另乙個重要機...
繼承與多型
虛函式只要在基類裡定義,所以繼承類都不用重新定義為虛函式,自動成為虛函式。虛函式必須有實現,普通成員函式在沒有呼叫時可以沒有實現 定義 class animal 只需要在基類定義函式為虛,子類中不需要新增virtual.smile函式在沒有呼叫時可以不實現。當有函式為虛函式時,析構函式應定義為vir...
繼承與多型
繼承需要符合的關係 is a,父類更通用 子類更具體 子類繼承父類的所有屬性和方法 不包括父類構造方法 super可以呼叫父類的方法和構造方法 子類可以重寫父類的方法 使用多型之後,當需要增加新的子類型別時,無需更改總部類,程式的可擴充套件性及可維護性增強 簡單來說,多型是具有表現多種形態的能力的特...