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

面向对象原则之一 里氏替换原则

时间:2019-01-04 00:19:05      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:blog   父类   接口   依赖   方法   六大原则   .com   返回   www   

原文:面向对象原则之一 里氏替换原则

前言

面向对象有人分为五大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则。

也有人分为六大原则,分别为单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则、里氏替换原则、迪米特法则。

 

现在我们来介绍里氏替换原则

 

里氏替换原则

1)概念

其概念是子类对象能够替换其基类对象被使用。

听上面的概念好像很简单,不就是父类实现的方法就能被子类实现,父类在外部的调用,替换成子类也可以嘛。

这么理解就错了,这里的概念虽然说得简单,但是其实并不是这样理解的。

那么我们说说里氏替换原则的真正概念吧。(原则)

2)原则

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
  • 子类可以增加自己持有的方法
  • 当子类覆盖或实现父类的方法时,方法的前置条件(参数)要比父类方法的参数更宽松
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(返回值)要比父类更严格

从上面可以看出,当我们继承父类时,不要覆盖父类的已经实现好的方法(抽象方法),只能覆未实现好的方法(非抽象方法)。

为什么不要覆盖父类已经实现的方法呢?因为如果覆盖了已经实现的方法后,子-父类会变得很耦合。

虽然继承是面向对象的3大特征之一,但是如果用得不好(替换父类已经实现的方法),会使程序变得复杂,变得更加耦合。

 

对这一原则,也没好举什么例子出来了。

 

其他链接:

开放封闭原则(开闭原则)

单一职责原则

依赖倒置原则

接口隔离原则

里氏替换原则

迪米特法则

 

面向对象原则之一 里氏替换原则

标签:blog   父类   接口   依赖   方法   六大原则   .com   返回   www   

原文地址:https://www.cnblogs.com/lonelyxmas/p/10217579.html

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