下面的陈述是否正确。 “一个男人有一个最好的朋友是狗。”
public class Mann {
private BestFriend dog;
//etc
}
答案 0 :(得分:5)
我想说写一下会更正确:
public class Man extends Entity {
private Entity bestFriend = new Dog(); // Where Dog extends Entity
//etc
}
为什么呢?假设您有许多不同的实体,例如Man
,Cat
和Dog
。然后让它们各自扩展一个Entity
类是有意义的,它指定每个实体应具有的各种属性。然后,每个属性都可以有bestFriend
属性,可以是任何其他Entity
。
但是,正如评论中所指出的那样,允许在构造函数中指定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);
答案 1 :(得分:2)
看起来狗应该按类型,因为男人可以有其他类型的最好朋友":
public class Mann {
private Dog bestFriend;
//etc
}
<强>更新强>
最接近实际实现的内容如下:
public interface Friend {}
public class Man implements Friend {}
public class Dog implements Friend {}
public class FriendRelationship {
private Friend first;
private Friend second;
public FriendRelationship(Friend first, Friend second) {
this.first = first;
this.second = second;
}
}
Man aPerson = new Man();
Dog aBog = new Dog();
FriendRelationship bestFriends = new FriendRelationship(aPerson, aDog);
这样可以表达任何实体之间的朋友关系。不需要公共基类。您只需要实现Friend
接口。
答案 2 :(得分:1)
男人一个额外的'n',否则看起来很合理。
答案 3 :(得分:1)
public class Man extends world.life.animalia.chordata.mammalia.primates.hominidae.hominini.homo.Homo_sapiens {
private world.life.animalia.chordata.mammalia.carnivora.canidae.canis.c_lupus.CanisLupusFamiliaris dog = new world.life.animalia.chordata.mammalia.carnivora.canidae.canis.c_lupus.CanisLupusFamiliaris();
private concept.population.social.Friend bestFriend = dog;
}
这种方式bestFriend是狗的指针(或参考)。