码迷,mamicode.com
首页 > 其他好文 > 详细

里氏替换原则LSP

时间:2020-10-16 11:17:19      阅读:23      评论:0      收藏:0      [点我收藏+]

标签:doc   src   alt   含义   title   破坏   规范   image   mic   

里氏替换原则(Liskov Substitution Principle, LSP)是面向对象设计原则的一种,也叫里氏代换原则。里氏替换原则是关于继承的一个原则,遵循里氏替换原则能够更好地发挥继承的作用,里氏替换原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。

技术图片

里氏替换原则问题由来

  有一功能 P1,由类 A 完成。现需要将功能 P1 进行扩展,扩展后的功能为 P,其中P由原有功能 P1 与新功能 P2 组成。新功能 P 由类 A 的子类 B 来完成,则子类 B 在完成新功能 P2 的同时,有可能会导致原有功能 P1 发生故障。

里氏替换原则是什么

里氏替换原则的官方定义

  • 如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型
  • 所有引用基类的地方必须能透明地使用其子类的对象

里氏替换原则解读

下面我们来解读下里氏替换原则的定义。

里氏替换原则强调的是设计和实现要依赖于抽象而非具体;子类只能去扩展基类,而不是隐藏或者覆盖基类,它包含以下4层含义

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏

举例

 

 

技术图片

里氏替换原则LSP

标签:doc   src   alt   含义   title   破坏   规范   image   mic   

原文地址:https://www.cnblogs.com/to-bing/p/13823765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!