从java中的超类引用子类

时间:2012-10-03 08:11:46

标签: java oop inheritance

假设我有一个抽象类 Person 。还有另一个类学生,它扩展了 Person 。但是Student类有一个成员变量,比如说大学类型为 String ,而 Person 类中没有。

我们知道我们可以引用超类的子类,例如

人物p =新学生();

对象p是否有成员大学

2 个答案:

答案 0 :(得分:3)

您将无法执行p.college。但是,您可以将其强制转换为Student,在这种情况下,它将具有:

((Student) p).college;

答案 1 :(得分:2)

在您的示例中,Person对象 IS 一个Student,因此将拥有college成员。

由于您将Student转换为PersonPerson中不存在的任何公共例程或数据都将被强制转换 赋值隐藏虽然。