2016-03-22 96 views

回答

11

的IS-A的關係是繼承。繼承的類被稱爲子類或子類。另一方面,HAS - A關係是組成

在OOP中,IS - A關係是完全繼承。這意味着,子類是一種父類。例如,一個蘋果是一種水果。所以你會延長水果來獲得蘋果。

class Apple extends Fruit{ 
. 
. 
} 

另一方面,組合意味着創建引用其他對象的實例。例如,一個房間有一張桌子。 因此,您將創建一個教室,然後在該類中創建一個類型表的實例。

class Room{ 

: 
Table table = new Table(); 
: 
: 
} 

HAS-A關係是動態(運行時)綁定,而繼承是靜態(編譯時)綁定。 如果您只是想重複使用代碼,並且您知道兩者不是同一種類,請使用合成。例如,你不能從廚房烤箱。廚房HAS-A烤箱。 當你感覺像蘋果這樣的自然關係是水果使用繼承。

希望這可以消除你的困惑。

你可以爲HeadFirst Java進一步閱讀。

0

美孚是,一個酒吧:

public class Foo extends Bar{} 

美孚擁有-一個酒吧

public class Foo { 
    private Bar bar; 
}