公有繼承,私有繼承和保護繼承三種。
繼承方式
基類屬性
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...