下面的说法正确吗? “人最好的 friend 是狗。”
public class Mann {
private BestFriend dog;
//etc
}
最佳答案
我想说这样写会更正确:
public class Man extends Entity {
private Entity bestFriend = new Dog(); // Where Dog extends Entity
//etc
}
为什么?假设您有一堆不同的实体,例如 Man
、Cat
和 Dog
。那么让它们各自扩展一个 Entity 类就有意义了,该类指定每个实体应具有的各种属性。那么,每个实体都可以有一个 bestFriend
属性,该属性可以是任何其他实体
。
但是,正如评论中所指出的,允许在构造函数中指定 bestFriend
会更正确:
public class Man extends Entity {
private Entity bestFriend;
public Main(Entity bestFriend) {
this.bestFriend = bestFriend;
}
//etc
}
...
Dog bobDog = new Dog();
Man bob = new Man(bobDog);
关于Java has-a 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307721/