【发布时间】:2016-01-27 15:50:44
【问题描述】:
我刚刚在(Java)面向对象编程的讲座中遇到了 Liskov 替换原则和强制转换。我明白原理是什么,就是我可以用超类的类型来初始化一个子类:
SuperClass superClass = new SubClass();
我首先关心的是这种操作的目的。为什么我不能像往常一样声明子类(示例如下)?
SubClass subClass = new SubClass();
紧接着,我就卡在了投射上,如下:
SuperClass superClass = new SubClass();
SubClass subClass = (SubClass)superClass;
再一次,我很难理解这一切的意义。
谁能解释这些程序的目的?
【问题讨论】:
标签: java casting substitution