当前位置: 首页 > news >正文

里式替换原则(LSP)

目录

简介:

作用:

过程:

总结:


简介:

里式替换原则(Liskov Substitution Principle,简称LSP)的提出者是美国计算机科学家Barbara Liskov。Barbara Liskov是一位计算机科学家,麻省理工学院教授,也是美国第一个计算机科学女博士,师从图灵奖得主John McCarthy教授,人工智能概念的提出者。她在1986年的一篇论文中首次提出了这个原则,并在随后的研究中对其进行了进一步的阐述和推广。

作用:

1.维护性
子类可以完全替换父类,使得代码的维护更加容易。因为如果子类无法替换父类,那么当父类发生变化时,子类也需要进行相应的修改,这样就会增加代码的维护难度。
2.可扩展性
子类可以继承父类的属性和方法,并且可以添加自己的属性和方法,从而扩展了父类的功能。这样,当需要增加新的功能时,只需要在子类中添加相应的属性和方法即可,而不需要修改父类,这样就提高了代码的可扩展性
3.正确性
子类可以完全替换父类,从而保证了代码的正确性。如果子类无法完全替换父类,那么在使用子类对象时就会出现一些错误,因为父类的行为可能会发生变化,从而导致代码的行为不一致。
4.复用性
子类可以完全替换父类,从而提高了代码的复用性。如果子类可以替换父类,那么就可以在不同的上下文中使用同一组代码,从而提高了代码的复用性。

过程:

总结:

在上面这个例子定义了一个 Animal 类和一个 Dog 类,Dog 类继承自 Animal 类。Animal 类中有一个 Eat 方法,而 Dog 类中也有一个 Eat 方法,这个方法使用了 new 关键字来隐藏了 Animal 类中的 Eat 方法。
在 Main 方法中,先创建了一个 Animal 对象,然后再创建了一个 Dog 对象。接着调用了 animal 对象的 Eat 方法,输出了 "I am eating.",这个方法调用的是 Animal 类中的 Eat 方法。然后,我们调用了 dog 对象的 Eat 方法,输出了 "I am a dog and I am eating.",这个方法调用的是 Dog 类中的 Eat 方法。
最后,将 dog 对象赋值给了 animal 对象,并再次调用了 animal 对象的 Eat 方法,输出了 "I am a dog and I am eating.",这个方法调用的是 Dog 类中的 Eat 方法,因为此时 animal 对象的类型是 Dog 类型。
这个例子演示了里氏替换原则的应用,即在程序运行时,如果需要用一个子类对象来替换父类对象,程序应该能够正确地处理这种替换,而不需要进行额外的处理。

http://www.lryc.cn/news/137143.html

相关文章:

  • mysql------做主从复制,读写分离
  • Anaconda虚拟环境跨系统迁移
  • 第四章 IRIS 编程简介 - Macros
  • 大厂考核重点:mysql索引面试题
  • MySQL使用binlog日志做数据恢复
  • USB Type-C端口集成式ESD静电保护方案 安全低成本
  • Shiro学习总结
  • AS中回退git历史版本并删除历史提交记录
  • 线性代数的学习和整理5: 矩阵的加减乘除及其几何意义
  • sqlsugar 使用TNS连接oracle
  • 用python解压zip文件
  • 代码随想录22| 216.组合总和III, 17.电话号码的字母组合
  • ITIL4—战略与指导
  • 【Spring】Spring循环依赖(超重要!!)
  • 数据分析之路应该是就此开启了
  • win10如何配置jdk环境变量
  • pm4py使用指南(非机翻)
  • ChatGPT帮助提升工作效率和质量:完成时间下降40%,质量评分上升 18%
  • 第二章 搜索
  • transform_train.json文件解析
  • Wlan——锐捷零漫游网络解决方案以及相关配置
  • 分布式锁系列之zookeeper分布式锁和mysql分布式锁
  • Ubuntu部署PHP7.4
  • WPF中的数据转换-StringFormat
  • java.lang.UnsupportedOperationException解决方法
  • docker for window更改到非系统盘的使用记录
  • day 38 | ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
  • 写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(中)
  • Interlij IDEA 运行 ruoyi 后端项目。错误: 找不到或无法加载主类 com.ruoyi.auth.RuoYiAuthApplication
  • 相机设置报错记录