这更像是一个验证:
将子对象转换为父类型有什么好处吗?
假设我有两个类 Parent和Child。Child正在扩展Parent。
代码有什么不同吗
Parent p = new Child();
和
Parent p = (Parent) new Child();
?
p在调用它的任何方法或以任何方式访问它的任何一个成员时会有什么不同吗?
从我的角度来看,两者是相同的,这里的铸造是多余的。
//===================================
编辑:作为开发人员,我一直希望能够从 Child 外部控制调用哪个方法—— Ch ild或Parent的方法。
因此,编码器将寻求调用Parent的方法,而不管该方法是否在子类中被覆盖。也就是说,子类的重写方法将被绕过,并且该方法的Parent实现将在Child对象上调用。