繼承多型知識總結

2021-09-24 16:46:12 字數 1673 閱讀 3974

c++物件導向有三大特性:封裝、繼承、多型。其中,封裝是c++物件導向的一大特性。是指隱藏物件的具體屬性和實現方式,只是對外界暴露公共介面。封裝具有將變數隔離、便於使用、提高安全性等優點。繼承是父類某種特性在加上某種限制(比如:public、protected、privat)後,子類同樣具有這樣的特性,並且還可以加上自己的特性,繼承實現了復用性,應用非常廣泛。多型是通過virtual關鍵字實現虛函式的重寫,以及父類指標或引用實現動態繫結。下面就是對繼承和多型的知識點總結。

一、繼承

1)、組合:將乙個類的物件作為另乙個類的成員,被稱作組合或者包含。

2)、物件成員初始化:包含物件成員的組合物件—執行成員類的建構函式初始化成員物件;

成員物件的初始化—使用初始化列表語法。注意:當組合物件被撤銷時,會執行其析構函式,成員物件的析構函式也會被執行,但是析構函式的執行次序與建構函式相反!

3)、繼承:

a、在已有類的基礎上建立新類的過程。b類繼承a類或稱從類a派生類b;

b、被繼承的已有類稱為基類,繼承所得到的新類稱為派生類(派生類也可再被繼承,這樣的乘此結構叫做繼承層次);

c、語法表示:class 派生類名:基類名

d、訪問控制:表示派生類對基類的繼承方式,關鍵字有public、private、protected。(不論以何種方式繼承基類,派生類都不能直接使用基類的私有成員)

4)、生成派生類:①吸收基類成員,除建構函式析構函式外全部吸收,但是不一定是可見的;

②改造基類成員,通過在派生類中定義同名成員來遮蔽或者隱藏在派生類中不起作用的部分積累成員;

3新增派生類新成員。

5)、重名成員:派生類定義了與基類重名的基類成員,在派生類中訪問時遮蔽了基類的同名成員;

如果在派生類中使用基類的同名成員,顯示的使用類名限定符,即:類名:成員。

6)、基類的初始化: 派生類建構函式宣告為:派生類建構函式(變元表):基類(變元表),物件成員1()…物件成員n();

建構函式執行順序為 基類,物件成員,派生類。

7)、派生類建構函式析構函式的定義

①、基類的構造和析構函式不能被繼承;

如果基類沒有定義建構函式或者有無參建構函式派生類也不用定義建構函式;

如果基類沒有無參的建構函式派生類必須定義建構函式;

派生類是否定義析構函式與所屬的基類無關。

②、格式: 派生類::派生類名(引數總表):基類名(參數列)

析構函式:

當派生類不含物件成員時:

在建立派生類物件時,建構函式的執行順序是基類,派生類;

在撤銷時是派生類,基類; 黨派生類中含有物件成員時:

建構函式的順序是基類,物件成員,派生類;撤銷時是派生類,物件成員,基類。

8)、應用:如果多個類既共享資料也共享行為,應該讓他們從乙個共同的基類繼承過來,並在基類裡定義共用的資料和操作。

二、多型

1)、虛函式:在c++中,基類將兩種成員函式區分開來:一種是基類希望希望派生類覆蓋的函式,另一種是 基類希望派生類直接繼承而不改變的函式。對於前者,基類將其定義為虛函式。

2)、虛函式的宣告:virtual 返回型別 成員函式名(參數列);

(不能類外定義) 派生類可以重定義積累的虛函式,成為覆蓋。

3)、實現多型性的步驟: 在基類中將需要多型呼叫的成員函式宣告為virtual; 在派生類中覆蓋積累的虛函式,實現各自需要的功能; 用基類的指標或者引用指向派生類物件,通過基類指標或引用呼叫虛函式。

總結 繼承,多型

一.不能被繼承的父類成員 1.private 2.子類與父類不在同包,使用預設訪問許可權的成員。3.構造方法。二.訪問許可權 從小到大 private 私有的 friendly 預設 protected 受保護的 public 公有的 三.方法重寫規則 1.方法名相同。2.引數列表相同。3.返回值型...

過載繼承多型知識點總結

stl stl容器的操作 size 返回當前容器的元素數量 empty 判斷容器是否為空 make size 返回容器能容納的最大元素數量 begin 返回乙個迭代器,指向第乙個元素 end 返回乙個迭代器,指向最後乙個元素之後 rbegin 返回乙個逆向迭代器,指向逆向遍歷的第乙個元素 rend ...

知識點總結 組合,繼承,多型

一 組合 將乙個類的物件作為另乙個類的成員,被稱作組合或包含 1.將嵌入的物件作為新類的公有成員 class eye class nose class mouth class ear class head int main 2.將嵌入物件作為新類的私有成員 class engine void sta...