2016-03-22 120 views

答えて

11

AnはIS-関係は継承され:)をしてください。継承するクラスはサブクラスまたは子クラスと呼ばれます。一方、HAS - Aの関係は合成です

OOPでは、IS - Aの関係は完全に継承されています。つまり、子クラスは親クラスの一種です。例えば、リンゴは果物です。あなたはリンゴを得るために果物を広げます。

class Apple extends Fruit{ 
. 
. 
} 

一方、構成とは、他のオブジェクトへの参照を持つインスタンスを作成することを意味します。たとえば、部屋にはテーブルがあります。 したがって、クラスルームを作成し、そのクラスでtable型のインスタンスを作成します。

class Room{ 

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

HAS-A関係は、動的(実行時)バインディングであり、継承は静的(コンパイル時)バインディングです。 コードを再利用したいだけで、その2つが同じ種類の使用構成でないことがわかっている場合は、たとえば、台所からオーブンを入れることはできません。キッチンHAS-Aオーブン。 Appleのような自然な関係があると感じると、Fruitは継承を使用します。

これはあなたの混乱を解消することを願っています。

さらに読むためにHeadFirst Javaを使用できます。

0

fooがある - バー:

public class Foo extends Bar{} 

fooがあり、バーを

public class Foo { 
    private Bar bar; 
} 
関連する問題