2

假设我有一个抽象类Person。还有另一个类Student扩展了Person。但是 Student 类有一个成员变量,比如String类型的学院,它在Person类中不存在。

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

人 p = new Student();

对象 p 会有成员学院吗?

4

2 回答 2

3

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

((Student) p).college;
于 2012-10-03T08:14:05.613 回答
2

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

由于您将Student转换为 a Person,因此任何不存在的公共例程或数据Person都将被转换 分配隐藏。

于 2012-10-03T08:13:15.037 回答