均衡两个不同的对象

时间:2017-04-02 13:26:13

标签: java

当我们平衡两个物体时会发生什么?例如;

Person p = new Person();
Student s = new Student();
p=s; 

(Person类是Student类的父类。)

当我写p=s时,为什么我不能从p获得学生的特殊方法? (如同向下倾斜)我的意思是这个陈述的工作机制是什么?

1 个答案:

答案 0 :(得分:1)

我假设Person类是Student类的父类。否则你的代码就不会编译。

当您致电p=s时,您正在将Student类实例的引用存储到p中,该引用应该包含对Person对象的引用。

稍后,当您尝试使用p调用Student类方法时,编译器会引发错误,因为编译器知道p只保存Person个对象。要调用Student方法,您应该使用类型转换:

((Student)p).someStudentMethod();