软件架构设计原则-里氏替换原则

前言

里氏替换原则简单的理解可以是父类用到的地方可以用子类替换并且不改变逻辑,这就要求子类可以扩展父类的功能,但不能改变父类原有的功能。里氏替换原则要求
(1) 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,
(2) 子类可以增加自己特有的方法
(3) 当子类的方法重载父类的方法时,方法的入参要比父类方法的入参更宽松,但返回值要比父类更严格
接下来我们就用一个案例来解释

案例

在生活中,有矩形和正方形,正方形是长宽相等的矩形,所以我们新建这样两个类

在Test里新建方法,当长方体的宽大于等于高的时候,我们让高一直自增,直到高等于宽

然后在main方法中我们用长方体来测试

运行结果如下:

改造

接下来我们创建一个基于长方形和正方形的抽象四边接口Quadrangle

然后改造Rectangle和Square实现Quadrangle接口

此时Square 没有setHeight和setWidth方法
所以在测试的时候如果Square参与resize方法会在编译的时候就 错

软件架构设计原则-里氏替换原则

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月27日
下一篇 2021年11月27日

相关推荐