導航:首頁 > 編程語言 > java類的組合

java類的組合

發布時間:2024-12-21 21:02:51

『壹』 Java中,組合和繼承的區別

1.組合(has-a)關系可以顯式地獲得被包含類(繼承中稱為父類)的對象,而繼承(is-a)則是隱式地獲得父類的對象,被包含類和父類對應,而組合外部類和子類對應。

2.組合關系在運行期決定,而繼承關系在編譯期就已經決定了。

3.組合是在組合類和被包含類之間的一種松耦合關系,而繼承則是父類和子類之間的一種緊耦合關系。

4.當選擇使用組合關系時,在組合類中包含了外部類的對象,組合類可以調用外部類必須的方法,而使用繼承關系時,父類的所有方法和變數都被子類無條件繼承,子類不能選擇。

5.最重要的一點,使用繼承關系時,可以實現類型的回溯,即用父類變數引用子類對象,這樣便可以實現多態,而組合沒有這個特性。

6.還有一點需要注意,如果你確定復用另外一個類的方法永遠不需要改變時,應該使用組合,因為組合只是簡單地復用被包含類的介面,而繼承除了復用父類的介面外,它甚至還可以覆蓋這些介面,修改父類介面的默認實現,這個特性是組合所不具有的。

7.從邏輯上看,組合最主要地體現的是一種整體和部分的思想,例如在電腦類是由內存類,CPU類,硬碟類等等組成的,而繼承則體現的是一種可以回溯的父子關系,子類也是父類的一個對象。

8.這兩者的區別主要體現在類的抽象階段,在分析類之間的關系時就應該確定是採用組合還是採用繼承。

9.引用網友的一句很經典的話應該更能讓大家分清繼承和組合的區別:組合可以被說成「我請了個老頭在我家裡幹活」 ,繼承則是「我父親在家裡幫我幹活"。

閱讀全文

與java類的組合相關的資料

熱點內容
雲南伺服器集群雲伺服器 瀏覽:773
土豪解壓金豬視頻 瀏覽:791
靜態編譯vc運行庫 瀏覽:631
程序員除草完整視頻 瀏覽:634
gpio命令 瀏覽:508
只會python能做演算法嗎知乎 瀏覽:687
免費的pdf轉換軟體 瀏覽:578
查看所有linux命令 瀏覽:860
寫編程筆記本哪款好 瀏覽:452
javalist套list 瀏覽:447
哪些app是方舟編譯器 瀏覽:330
安卓如何更新到蘋果 瀏覽:114
雷風行電動車用什麼app 瀏覽:118
基於or分解的信號檢測演算法 瀏覽:758
批量復制文件夾中所有文件的名稱 瀏覽:227
如何映射遠程伺服器硬碟 瀏覽:16
載入源碼分析 瀏覽:227
貴州伺服器雲存儲 瀏覽:42
迪士尼程序員待遇 瀏覽:450
黑程序員語錄 瀏覽:609