【发布时间】:2013-07-30 05:17:48
【问题描述】:
这是一个验证:
将子对象转换为父类型有任何好处吗?
假设我有两个类 父母和孩子。 Child 正在扩展 Parent。
有什么区别吗 代码
Parent p = new Child();
和
Parent p = (Parent) new Child();
?
p 在调用任何 方法或以任何方式访问其任何成员?
从我的角度来看,两者是相同的,在这里投射是多余的。
//====================================
编辑: 作为开发人员,我一直在寻求控制权, 关于调用哪个方法 - Child 或 Parent 的方法,来自 Child 外部。
因此,编码器将寻求调用 Parent 的方法不管 该方法是否在子类中被覆盖。那是, 子类的重写方法将被绕过,并且 该方法的 Parent 实现将是 在 Child 对象上调用。
【问题讨论】:
-
不是在 Java 中,所有非
private实例方法都是虚拟的。
标签: java inheritance casting