類與類的關係

2021-07-26 17:48:32 字數 793 閱讀 7655

首先,允許多層繼承但不允許多重繼承(一繼多)

子類本質上是包含了父類的,下面這張從記憶體的角度解釋了這一點

值得一提的是構造它們的時候走建構函式的順序:

在構造子類物件的時候要先構造出乙個父類物件,也就是說,先執行父類的無參構造或者系統幫忙新增的無參構造,再走子類的構造。

假如父類沒有無參構造卻有有參構造,系統不會幫忙新增了無參版本了,也就會報錯,這時候子類可以通過super去顯式呼叫父類有參版本的構造。

多型涉及的訪問規則看似很複雜,但總結起來就是:乙個子類「被當作父類」使用時就只能訪問父類有的成員和方法,其中被重寫覆蓋的方法用覆蓋後的版本,注意靜態方法不會被覆蓋。向下轉型之後就是乙個普通類。

抽象的繼承,規則本身沒有什麼好說的,那就是有一些共性被抽象提煉出來了,作為抽象的方法或者類,一層層繼承下來我們可以任意給它具體化。

介面(inte***ce)是一種特殊的抽象類(abstract class),區別在於:介面限定的更死,只有常量和抽象方法;介面跟它的子類是實現(implement)的關係,也是特殊的繼承(extends)。

允許:1.介面繼承介面的多層繼承和繼承多個介面的多重繼承

2.同時繼承類和多個口

巢狀在類中(方法外),本質是成員(所以可以static),所以它訪問外部類成員就像其他普通成員一樣平等。外部類訪問內部類物件得先創造出它的物件。

巢狀在方法中,只能訪問區域性的final變數。

原因在於區域性變數會隨著方法呼叫完畢而消失,但內部類還在堆中暫時未被**。加上final以後,內部類中變數的呼叫就會被替換為常量,否則到了**內部類的時候就找不到這個變數。

類與類的關係

類a依賴於類b,用由類a指向類b的帶箭頭虛線表示 被關聯類b以類的屬性形式出現在關聯類a中 關聯類a引用了乙個型別為被關聯b的全域性變數 以空心菱形加實線箭頭表示 以實心菱形加實線箭頭表示 oop程式設計思想中,繼承是乙個十分重要的內容。下面介紹幾個 常見的容易混淆的術語。首先舉例子 我們常見的動物...

類與類關係

表現為繼承或實現關係 is a 具體形式為類與類之間的繼承關係,介面與介面之間的繼承關係,類對介面的實現關係。指的是乙個類 稱為子類 子介面 繼承另外的乙個類 稱為父類 父介面 的功能,並可以增加它自己的新功能的能力,uml中實現用三角形箭頭和實線表示 指的乙個類實現介面 可以是多個 的功能,uml...

類與類之間的關係

uml uml是統一建模語言 為軟體開發提供一些標準的圖例,統一開發思想,從而促進團隊協作 在軟體過程中,會用到uml 分析 設計 編碼 測試 維護 主流的有 rup rational unified process 合理的統一過程 強調軟體開發一開始就要有好的設計 才能有好的設計 xp程式設計 e...