單一繼承與多重繼承

2021-08-07 11:31:19 字數 1000 閱讀 6835

類的繼承就是建立乙個具有別的類的屬性和行為的新類。即從已有的物件型別出發, 建立一種新的物件型別,使它繼承(具有)原物件的特點和功能。

新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的需要。這也體現了大自然中一般與特殊的關係。繼承性很好地解決了軟體的可重用性問題。比如,所有的windows應用程式都有乙個視窗,可以認為它們都是從乙個視窗類派生出來的。但是有的應用程式用於文書處理,有的應用程式用於繪圖,這是由於派生出了不同的子類,各個子類新增了不同特性的結果。

單一繼承就是只通過乙個基類產生派生類。這個派生類的基類只有乙個,它從基類繼承所有成員,多重繼承的派生類有多個基類,首發中國自學程式設計網,www.zxbc.cn。

單一繼承

單一繼承的一般形式為:

class派生類名:訪問控制基類名

當在派生類定義中的訪問控制(許可權)設為public(公有)時,這個類的派生就稱為「公有派生」,它有如下特點:

·基類的公有成員在派生類中仍然是公有的。

·基類的保護成員在派生類中仍然是保護的。

·基類的不可訪問和私有成員在派生類中仍然是不可訪問的。

因為派生是沒有限制的,即派生類也可作為基類派生新的類,所以在派生類中有一種「不可訪問成員」級別存在,它要麼是基類的不可訪問成員,要麼是基類的私有成員。

賦值相容原則,就是在公有派生的情況下,乙個派生類的物件可以作為基類的物件來使用(在公有派生的情況下,每乙個派生類的物件都是基類的乙個物件一它繼承了基類的所有成員,並且沒有改變其訪問許可權)。

多重繼承

多重繼承是指乙個派生類由多個基類派生而來,它是單一繼承的自然擴充套件。

多重繼承的一般形式為:

class類名l:訪問控制類名2,訪問控制類名3,…訪問控制類名n

( …//定義派生類自己的成員

}; 從中可以看出,每個基類有乙個訪問控制來限制其中成員在派生類中的訪問許可權,其規則和單一繼承是一樣的.

多繼承與多重繼承

什莫是多繼承?乙個類擁有兩個或者兩個以上的父類 什莫是多重繼承?乙個類不僅僅有父類還有祖父類 什莫是虛繼承?虛繼承是為了解決多繼承的問題 經過這樣的宣告後,當基類通過多條派生路徑被乙個派生類繼承時,該派生類只繼承該基類一次,也就是說,基類成員只保留一次。菱形繼承 以往,在派生類的建構函式中只需負責對...

C 多重繼承與虛繼承

在派生類中對基類成員的訪問應該是唯一的。但是,在多繼承情況下,可能造成對基類中某個成員的訪問出現了不一致的情況,這時就稱對基類成員的訪問產生了二義性。派生類在訪問基類成員函式時,由於基類存在同名的成員函式,導致無法確定訪問的是哪個基類的成員函式,因此出現了二義性錯誤。例如 includeusing ...

C 多重繼承與虛擬繼承

本文只是粗淺討論一下c 中的多重繼承和虛擬繼承。我們先來看一下簡單的例子 1 include 2 using namespace std 34 classa5 14 a 15 1617 class b publica18 27 b 28 2930 class c publica31 40 c 41 ...