在物件導向技術下類中成員的可見性以及訪問控制程度總是讓程式設計師發懵。特別是初學者。下面將對其做一總結。
1.橫向來看,比較簡單。類中成員的訪問控制程度有三種:public,private,proteced。
public:完全向外部公開。
protected:類中以及派生類均可訪問,不能再類外訪問。
private: 僅本類中可以訪問,類外不能訪問。友元除外。
橫向的較簡單。一旦涉及到縱向的繼承後,各種繼承方式下的訪問控制將很容易搞錯。
2.縱向,一定要區分好下面這兩種。
第一:父類的成員在子類中的外部能見度,是指被子類繼承的
父類成員在子類中的(外部)訪問控制程度,也分為
public、private、protected 三種。
第二:父類的成員在子類中的內部能見度,是指被子類繼承的
父類成員在子類中定義的方法中的內部訪問控制程度,
分為y(可訪問)和n(不可訪問)兩種。
記住此圖,就可以理清複雜的可見性問題了。
java 類的繼承體系
詳細描述見 1 原因1 雖然抽象類b implements c.但是,有可能b中的並沒有真正實現c介面中的方法 因為b是抽象類,抽象類可以不實現介面中的方法,而是直接用 abstract 修飾。如 abstract void method 那麼,由於a extends b,而 a不是抽象類,那麼a就...
C 繼承體系中的名稱覆蓋
首先乙個簡單的樣例 int x int f 在上述 中。函式f的區域性變數x掩蓋了全域性變數x。這得從 c 的名字查詢機制 說起,首先。在函式f的區域性作用域中查詢。甚至是語句塊 假設不存在,到上一層的作用域再進行查詢,該命名空間中查詢,最後是全域性作用域。在類的繼承體系中,名字覆蓋問題也是非常困擾...
C 繼承體系中的記憶體分段
綜述與目錄 討論這個問題之前我們先明確類的結構,乙個類的大概組成,下面的很多分類名詞都是我個人杜撰,為的就是讓讀者看懂能夠區分,下面分別分類 目錄 空類不含任何成員變數,也不繼承某個基類。結構類像c語言中結構體一樣,要麼只包含基本資料型別,要麼是其他構造型別的巢狀,或者兩者兼而有之。派生類有至少乙個...