從頭認識java 6 4 如何在聚合與繼承之間選擇

2021-09-02 12:46:34 字數 1132 閱讀 4309

這一章節我們來聊一下在聚合與繼承之間選擇的問題。

在我們平常的編碼裡面,使用聚合或者繼承都可以,或者兩者可以混合使用也行,這個時候就需要做出抉擇,因為**以後還需要維護,怎麼才能達到維護簡單?**可讀?。。。

因此,我們必須在各種方案中做出抉擇。

筆者是這樣認為的:

如果新的類只是使用老的類的一部分功能,那麼就是用聚合,直接new出來就可以了,滿足need或者組合這個關係;

如果新的類必須是老的類的乙個特殊例子,那麼就是用繼承,滿足is-a或者is-like-a這種關係

例子:車是交通工具。

**:

/**

* */

package com.ray.ch05;

/** * @package:com.ray.ch05

* * @todo 測試

* * @date 2015 10 30

* * @time 11:42:19

* * @author jmscadmin

* * @version 1.0

*/public class test

class vehicle

class car extends vehicle

class bmw extends car

車滿足is-a交通工具這個關係,bmw滿足is-a車這種關係

車是由輪子、車門等組合成的。

/**

* */

package com.ray.ch05;

/** * @package:com.ray.ch05

* * @todo 測試

* * @date 2015 10 30

* * @time 11:42:19

* * @author jmscadmin

* * @version 1.0

*/public class test

class door

class wheel

class car

車和輪子、門等滿足車是由***組成的這種關係。

總結:這一章節簡單討論了如何在聚合與繼承之間選擇。

這一章節就到這裡,謝謝。目錄

從頭認識java 1 5 繼承(2)

接著上一章節,我們來繼續介紹繼承。1.子類呼叫方法時的查詢方法的順序 package com.ray.ch01 public class animal public void sleep package com.ray.ch01 public class bird extends animal pu...

從頭認識java 7 4 實現多重介面

這一章節我們來說一下介面另乙個特性 多重介面。在平常,使用繼承,我們只是繼承某一類,只能夠一種向上轉型,但是在介面的使用方面,可以實現多個介面,然後實現多種的向上轉型。我們先上 package com.ray.ch07 public class test public static void tes...

從頭認識java 8 6 匿名內部類

這一章節我們來討論一下匿名內部類。我們之前已經提到了內部類,如下 package com.ray.ch03 public class test private mytest mytest public static void main string args inte ce mytest 上面的內部...