A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 18704635324 中级黑马   /  2016-7-11 22:56  /  1601 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.里氏替换原则:用父类的指针指向子类的对象,对程序没有影响
比如:学生是人,可以用人类型的指针指向学生对象

2.里氏替换原则的局限性.父类指针指向子类对象,调用子类的独有的方法,编译报错


什么是编译检查?
编译检查就是程序运行之前的检查,就看这个指针定义的类型是否拥有某个方法/属性

什么是运行检查?
运行检查是程序运行过程中的检查.检查的是指针指向的对象是否拥有某个方法/属性

敲敲代码,打几个例子就会秒理解。。

8 个回复

正序浏览
回复 使用道具 举报
来一个黑马币
回复 使用道具 举报
加油 !!!
回复 使用道具 举报
twototwoto 发表于 2016-7-12 07:54
一、里氏替换原则的定义
1、里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功 ...

多谢补充
回复 使用道具 举报

好人一生平安
回复 使用道具 举报
谢谢总结~~~
回复 使用道具 举报
一、里氏替换原则的定义
1、里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。
2、里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。
3、里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

二、里氏替换原则包含的含义
1、子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法
2、子类中可以增加自己特有的方法
3、当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松
参考:https://www.douban.com/note/363404356/
回复 使用道具 举报
来一个黑马币
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马