里氏代换原则(企鹅是不是鸟!)
看了看《大话设计模式》这本书,写的感觉太棒了,例子通俗易懂,简单的对话引出设计模式的例子。
里氏代换原则(LSP):子类必须能够替换掉他的父类[ASD]
子类继承了父类,所以子类可以以父类的身份出现!
那么问题来了,面向对象设计时,一个鸟类,一个企鹅类,鸟类中有一个 +飞()的方法,那么企鹅可以继承鸟这个类吗?
按照常识来说,企鹅是特殊的鸟,虽然不会飞也是鸟,所以可以继承!!
但是,这是错的,子类拥有父类所有非Private的行为和属性。鸟会飞,而企鹅不会,尽管在生物学上企鹅是鸟,但是在这个例子中,企鹅是不能继承这个鸟类的,因为企鹅不会飞,所以它在这里不能以父类的身份出现,除非企鹅会飞,才能去继承!!
里氏代换原则(企鹅是不是鸟!)相关推荐
- java设计模式之设计原则⑥里氏代换原则
定义: (1)一个软件实体如果使用的是一个父类的话,那 么一定适用于其子类,而且它察觉不出父类和子 类对象的区别.也就是说,在软件里面,把父类 替换成它的子类,程序的行为没有变化. (2)一个软件实体 ...
- 大话设计模式三之单一职责原则、开放-封闭原则、依赖倒置原则、里氏代换原则
单一职责原则 单一职责原则(SRP),意思就是说,功能要单一.准确解释是,就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或 ...
- 北风设计模式课程---里氏代换原则
北风设计模式课程---里氏代换原则 一.总结 一句话总结: 视频教程网上一定能找到做好笔记的博客,很大几率都不需要自己做笔记.比如北风设计模式课程,https://www.cnblogs.com/xi ...
- 设计模式七大原则-里氏代换原则
文章目录 一.概念 二.例程 三.代码示例 一.概念 里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象 里氏 ...
- JAVA设计原则:里氏代换原则
里氏代换原则 一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类和子类对象的区别.也就是说,在软件里面,把父类替换成它的子类,程序的行为没有变化.一个软件实体如果使用的是一 ...
- Java设计模式之二十八(里氏代换原则)
一.什么是里氏代换原则 里氏代换原则(Liskov Substitution Principle):一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类和子类对象的区别.也就 ...
- 设计模式—六大原则—里氏代换原则
里氏代换原则(Liskow-Substitution-Principle) 定义:子类对象能够替换父类对象,而程序逻辑不变. 里氏替换原则是确保继承正确使用的方法(继承使用的要求条件). Li ...
- 软件设计原则——里氏代换原则
里氏代换原则 里氏代换原则是面向对象设计的基本原则之一. 里氏代换原则:任何基类可以出现的地方,子类一定可以出现. 通俗理解:子类可以扩展父类的功能,但不能改变父类原有的功能. 换句话说,子类继承父类 ...
- 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则
目录 1 单一职责原则 2 开放封闭原则 3 依赖倒置原则 4 里氏代换原则 5 迪米特法则 1 单一职责原则 比如:电脑内存坏了就应该更换内存,不应该更换CPU (内存负责内存.CPU负责CPU) ...
- 【设计模式】五:依赖倒置与里氏代换原则
/** * 依赖倒转原则 * 定义: 抽象不应该依赖细节,细节应该依赖于抽象 * 解释:开发过程中,要学会针对接口编程,不要针对需求进行编程 * 特征: * 高层模块不应该依赖低层模块,两个都应该依赖 ...
最新文章
- Git HEAD 意思详解 和版本回退
- 企业网络推广专员浅析企业网络推广后期网站优化重点因素有哪些?
- 2022考研 【理工专场讲座(新政策分析、专业分析、复习建议)】
- lc滤波器是利用电感的感抗_电感知识
- IsNull 和 SQL语句中CASE WHEN用法
- 出这样的题,出题人的良心确定不会痛吗?
- 54 FI配置-财务会计-固定资产-主数据-更改评估组的关键词
- 7-42 关于堆的判断 (25 分)
- 获得显示器设置的分辨率
- php 和bootstrap,bootstrap4和bootstrap3的区别是什么
- node.js查询oracle,nodejs操作oracle数据库示例
- 分析lammps文件_LAMMPS学习系列(24)
- 深度学习入门——波士顿房价预测
- 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第6章 数据服务
- android root写入文件,android中root用户无法往某些目录写入文件解决方法
- android:kotlin语言开发再也不用findViewById与ButterKnife
- AT89C51(Atmel)芯片制作简易的频率计
- 蓝桥杯——青蛙过河(JAVA)
- Bootstrap简单网页制作
- group by的一点小说明