天天看點

Java組合與繼承之間的選擇

組合和繼承都允許在新的類中放置子對象,組合是顯示的這樣做,而繼承則是隐式的做。

  組合技術通常用于想在新類中使用現有類的功能而非他的接口。在新類中嵌入某個對象,讓其實作所需要的功能,但新類的使用者看到的隻是新類所定義的接口,而非所嵌入對象的接口。為了取得這樣效果,需要在新類中嵌入一個現有類的parivate對象。

  有時,允許類的使用者直接通路新類中的組合成分是極具意義的;也就是說,将成員對象聲明為public。如果成員對象自身都隐藏了具體實作,那麼這種做法是安全的。當使用者能夠了解到你正在組裝一組部件,會使得端口更加易于了解。car對象就是一個很好的例子:

Java組合與繼承之間的選擇

最新内容請見作者的github頁:http://qaseven.github.io/