有两个对象A和B,以下哪种实现形式更好?//实现一
class A
{int id;
...
}
class B extends A
{byte data[];
...
}//实现二
class A
{int id;
...
}
class B
{A a;
byte data[];
public A getA {return a;}
...
}
class A
{int id;
...
}
class B extends A
{byte data[];
...
}//实现二
class A
{int id;
...
}
class B
{A a;
byte data[];
public A getA {return a;}
...
}
继承表达的是一种“is-a”的关系,组合表达的是“has-a”的关系。前者所造成的两个类之间的耦合程度要高于后者。
但这只是理论上的普遍情况,针对每一种具体的情况,程序设计者本人应该更清楚哪种更适合。