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

里氏替换原则

定义

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

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

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

针对的问题

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

里氏替换原则的认识

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

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

始终记住里氏替换原则的最终目的就可以,就是保持父类的方法不被覆盖。所以前面两层含义和最后一条很容易理解,
相关推荐
无敌最俊朗@8 分钟前
Qt面试题day01
java·数据库·面试
AH_HH28 分钟前
Spring Boot 4.0 发布总结:新特性、依赖变更与升级指南
java·spring boot·后端
mqiqe30 分钟前
【Spring AI MCP】六、SpringAI MCP 服务端 STDIO & SSE
java·人工智能·spring
Tadas-Gao30 分钟前
Spring Boot 4.0架构革新:构建更精简、更安全、更高效的Java应用
java·spring boot·分布式·微服务·云原生·架构·系统架构
IT永勇39 分钟前
C++设计模式-装饰器模式
c++·设计模式·装饰器模式
vx_bisheyuange43 分钟前
基于SpringBoot的库存管理系统
java·spring boot·后端·毕业设计
专注于大数据技术栈1 小时前
java学习--单例模式之懒汉式
java·学习·单例模式
czhc11400756631 小时前
C# 1120抽象类 static
java·开发语言·c#
whltaoin1 小时前
【 Java微服务 】Spring Cloud Alibaba :Nacos 注册中心与配置中心全攻略(含服务发现、负载均衡与动态配置)
java·微服务·nacos·springcloud·注册中心·配置中心
你不是我我1 小时前
【Java 开发日记】有了解过 SpringBoot 的参数配置吗?
java·开发语言·spring boot