c 繼承方式及對基類的訪問許可權

2021-06-05 13:33:07 字數 1246 閱讀 6250

公有繼承,私有繼承和保護繼承三種。  

繼承方式

基類屬性

public

protected

private

公有繼承

(public)

public

protected

不可見保護繼承

(protected)

protected

protected

不可見私有繼承

(private)

private

private

不可見

1.公有繼承方式

a) 基類成員對基類物件的可見性(與一般類及其物件的可見性相同):public可見,protected與private不可見。

b) 基類成員對派生類的可見性:基類的公有成員和保護成員可見,基類的私有成員不可見:基類的私有成員仍是私有的,派生類不可訪問基類的私有成員。

c)  基類成員對派生類物件的可見性:基類的public是可見的,其他成員不可見。

在公有繼承時,派生類的物件可以訪問基類中的public,派生類的成員函式可以訪問基類中的public和protected。

2.私有繼承方式

a)基類成員對其物件的可見性:公有成員可見,其他成員不可見。

b)基類成員對派生類的可見性:基類的公有成員和保護成員是可見的,基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類訪問;基類的私有成員是不可見的,派生類不可訪問基類中的私有成員。

c)基類成員對派生類物件的可見性對派生類物件來說,基類的所有成員都是不可見的。

所以在私有繼承時,基類的成員只能由直接派生類訪問,而無法再繼續往下繼承。

3.保護繼承方式

這種繼承方式與私有繼承方式相同,兩者的區別僅在於對派生類的成員而言,基類成員對其物件的可見性與一般類及其物件的可見性相同,公有成員可見,其他成員不可見。

基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員是可見的:基類的公有成員和保護成員都作為派生類的保護成員,並且不能被這個派生類的子類訪問;基類的私有成員是不可見的:派生類不可訪問基類中的私有成員。

基類成員對派生類物件的可見性對派生類物件來說,基類的所有成員都是不可見的。

所以,在保護繼承時,基類的成員也只能由直接派生類來訪問,而無法再往下繼承。

在繼承中,基類的private對所有的外界都遮蔽(包括自己的派生類),基類的protected控制符對應用程式是遮蔽的,但對其派生類是可訪問的。保護繼承和私有繼承只是在技術上討論時有其一席之地。

繼承類對基類成員的訪問許可權

繼承是事物發展的過程,通過繼承使得後代繼承了父輩的優秀屬性並進一步 拓展出新的屬性和能力。c 中的繼承就是現有的類中建立乙個新的類,現有的類成為基類,繼承出來的新類稱為派生類,可以簡單的理解為 基類為父親,派生類為兒子。繼承的方式有三種,分別是 公有繼承 public 私有繼承 private 保護...

C 類繼承訪問許可權及外部訪問許可權

c 訪問許可權問題主要包括兩種 一種是外界對類成員的普通訪問,主要通過類內的public protected private許可權修飾符 另一種是繼承關係中子類對父類成員的訪問。基本原則 外界只能訪問類中public成員,子類可訪問父類的public和protected成員 不同繼承方式只影響外界 ...

類的訪問許可權及繼承許可權

類的繼承後方法屬性變化 private 屬性不能夠被繼承。使用private繼承,父類的protected和public屬性在子類中變為private 使用protected繼承,父類的protected和public屬性在子類中變為protected 使用public繼承,父類中的protecte...