如果父亲是父母,父母是父亲,而父亲是父亲,我会创建以下内容:
class Person{
Father father;
}
class Parent extends Person{}
class Father extends Parent{}
实例:
Person p1 = new Person();
Person p2 = new Person();
p1.father = p2; //father is of the type Father
这不起作用......现在尝试施放::
Person p1 = new Person();
Person p2 = new Person();
p1.father = (Father)p2;
这也不起作用。
这种情况有什么作用?
答案 0 :(得分:1)
实际上,父亲不是一个人的子类。这只是一种关系。
class Person {
Person father;
}
答案 1 :(得分:1)
最明显的是父亲是一个人。当涉及具体实例时,人不必是父亲。具体而言,如果您的父类型为Person类型,或者您将p2实例化为新父类,则此示例将起作用。
答案 2 :(得分:0)
你不能这样投。你的人不一个父亲,所以投射到一个人将无法工作。您只能转换为对象 的内容。
Person p1 = new Person();
Person p2 = new Father();
p1.father = (Father)p2;
或直接:
Father p2 = new Father();
p1.father = p2;
但作为父亲并不是阶级等级中的一个很好的区别。我可能不会为它创建一个自己的类:作为父亲只是一个人履行的许多角色中的一个,所以我将删除该类并将father
成员声明为常规Person
。与Parent
相同。