假设我有一个抽象类 Person 。还有另一个类学生,它扩展了 Person 。但是Student类有一个成员变量,比如说大学类型为 String ,而 Person 类中没有。
我们知道我们可以引用超类的子类,例如
人物p =新学生();
对象p是否有成员大学?
答案 0 :(得分:3)
您将无法执行p.college
。但是,您可以将其强制转换为Student
,在这种情况下,它将具有:
((Student) p).college;
答案 1 :(得分:2)
在您的示例中,Person
对象 IS 一个Student
,因此将拥有college
成员。
由于您将Student
转换为Person
,Person
中不存在的任何公共例程或数据都将被强制转换 赋值隐藏虽然。