【设计模式】设计原则-里氏替换原则

里氏替换原则

定义

任何基类可以出现的地方,子类一定可以出现。

通俗理解:子类可以扩展父类的功能,但不能改变父类原有的功能。

换句话说,子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

针对的问题

主要作用就是规范继承时子类的一些书写规则。

里氏替换原则的认识

里氏替换原则包含以下4层含义:

复制代码
1. 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。
2. 子类中可以增加自己特有的方法。
3. 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
4. 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

始终记住里氏替换原则的最终目的就可以,就是保持父类的方法不被覆盖。所以前面两层含义和最后一条很容易理解,
相关推荐
步行cgn24 分钟前
Spring p 命名空间注入详解
java·前端·spring
YatHinLay27 分钟前
MyBatis 流式查询实战:ResultHandler 处理海量数据
java
天天被压力1 小时前
【跨市场数据实战 #08】可转债折价机会怎么筛:3个接口抓比价、列表和实时盘口
java·人工智能·python
张某布响丸辣1 小时前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵
YatHinLay2 小时前
Spring Boot + Calcite 实现跨库查询
java
酷炫码神2 小时前
MosMos 创意效果与能力边界展示
java
Wang's Blog3 小时前
Java 接入Redis: 使用Jedis操作Redis
java·服务器·redis
事圆则缓3 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
shehuiyuelaiyuehao3 小时前
算法50,分治归并,数组中的逆序对
java·算法
烽学长3 小时前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端