java基礎-複用類-複用方式(2)

破羅蘭心發表於2020-12-12

一.繼承中的方法過載(名稱遮蔽)

如果在基類中有某個方法被多次過載,那麼在子類中重新定義該方法名稱時並不會遮蔽在基類中的任何一個版本。在子類中,基類和子類的該方法的

任何一個版本都可以正常工作。例如:

輸出結果為:

 

二.如何在組合與繼承之間進行選擇

組合主要用途是想在新類中使用現有類的功能。而繼承是使用某個現有類並考慮開發他的一個特殊版本。

這意味著,對於組合來說,新類與現有類是一個“has-a”的關係,對於繼承來說,這是“is-a”的關係。

在物件導向程式設計中,生成和使用程式碼最有可能採用的方法就是直接將資料和方法包裝進一個類中,並使用該類的物件,也可以用組合技術使用現有類

來開發新類,而繼承技術其實是不太常用的。儘管強調繼承,但是並不意味著要儘可能使用它,相反,應當慎用這一技術,其使用場合僅限於你確信

使用該技術確實有效的情況。到底該使用組合還是繼承,一個最清晰的判斷方法就是問一問自己是否需要從新類向基類進行向上轉型。如果必須向上

轉型,則繼承是必要的,如果不需要,則需要好好考慮了。

 

 

 

相關文章