哪一个是更好的做法,做这样的事情
public class A {
private B b;
public A() {
b = new B(this);
}
}
public class B {
private A a;
public B(A a) {
this.a = a;
}
}
或扩展课程,我真的很困惑,除了有一个' a'作为一个领域。
答案 0 :(得分:2)
这完全取决于具体情况。
让我们假设 A 类代表Car
,然后是
如果 B 是Engine
,那么您应该使用合成(Car有引擎)
如果 B 是RaceCar
那么你应该使用继承(RaceCar是一个更好的汽车)
如果有疑问,软件开发的当前趋势是更喜欢组合而不是继承。
答案 1 :(得分:0)
答案 2 :(得分:0)
这取决于你要实现的目标。 就像Win.ubuntu说的那样,使用扩展了猫/动物。 但是,如果你想拥有像汽车那样的引擎,那么请使用你的第二个例子。