黑马程序员技术交流社区
标题:
里氏替换原则
[打印本页]
作者:
宋健
时间:
2013-3-11 19:15
标题:
里氏替换原则
本帖最后由 宋健 于 2013-3-12 12:39 编辑
里氏替换原则说的是父类因用户可以指向子类实例,为什么会是这样,
子类引用指向父类实例为什么会报错。
谢谢。
作者:
HM张扬
时间:
2013-3-11 19:23
在面向对象思想中可知,派生类拥有基类向下公开的所有特征,它是基类的一个特例。
当派生类对象赋于基类类型时,将出现以下情况:派生类的数据结构依次对应于基类的数据结构。而派生类拥有的自己的数据将不可见。
当基类的对象试图转换为派生类型时,将出现基类对象的数据无法依次填充完派生类的所有数据结构。这就造成了它将无法完成派生类定义的功能。编译器将会提示甚至报错。
这就是派生类能胜任基类功能,而基类却无法完全胜任派生类功能的原因。
强制转换属于 基类到派生的过程:那是因为 设计人员知道:该基类对象的数据结构完全可以填充完派生类的结构。否则,将出现强转错误。一般最好避免使用强转!
还有,子类能够出现在任何父类对象出现的地方不是完全正确的,父类有时也不会将自己的一些成员公开给子类。
作者:
HM张扬
时间:
2013-3-11 20:55
HM张扬 发表于 2013-3-11 19:23
在面向对象思想中可知,派生类拥有基类向下公开的所有特征,它是基类的一个特例。
当派生类对象赋于基类类 ...
第一次被人给金币诶,上次还是花了10金币改名字
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2