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

里氏替换原则

定义

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

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

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

针对的问题

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

里氏替换原则的认识

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

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

始终记住里氏替换原则的最终目的就可以,就是保持父类的方法不被覆盖。所以前面两层含义和最后一条很容易理解,
相关推荐
蜗牛互联网5 小时前
GPT-6 与 Intelligent UI:从回答到可审计操作的产品迁移
java·人工智能·后端
SL_staff6 小时前
运维救火实录:钉钉考勤API变更引发工资计算异常,我们用JVS-Logic可视化逻辑引擎实现分钟级热修复
java·mysql·全栈
SunnyDays10116 小时前
Java 查找并高亮 Word 文字:精确查找及正则表达式模糊查找
java·查找文字·word 文档·高亮文字·正则匹配查找·模糊查找
geats人山人海6 小时前
java 4继承
java·开发语言
众链网络7 小时前
Agent 的成本大头不在“写“,在“判断“:拆解专用决策模型的三层架构
java·开发语言·人工智能·微服务
周小董7 小时前
[1371]jdk管理工具
java·开发语言
青春逝如流水7 小时前
Java 中线程的创建方式:从基础到现代
java·开发语言·多线程·ai文章
Peregrine98 小时前
C++ - > 类和对象
java·c++·算法
2501_933923258 小时前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
Wang's Blog8 小时前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 消息转换器
java·中间件·java-rabbitmq