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

java類的組合

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

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

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

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

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

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

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

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

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

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

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

閱讀全文

與java類的組合相關的資料

熱點內容
php登陸次數 瀏覽:742
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:374
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:515
源碼論壇打包 瀏覽:556
php怎麼做成word 瀏覽:690
python批量生成密鑰 瀏覽:490
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:813
android銀行卡識別 瀏覽:751
怎麼在app投放廣告 瀏覽:11
手機文件管理怎麼看app名稱 瀏覽:192
程序員學數學哪本書最全 瀏覽:784
macd實戰選股公式源碼 瀏覽:644
加密晶元的計算方法 瀏覽:191
手機存儲為什麼找不到微信文件夾 瀏覽:697
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:146
鐵路app怎麼買火車票 瀏覽:311