首页 > 其他分享 >里氏替换原则

里氏替换原则

时间:2022-11-21 22:45:38浏览次数:40  
标签:原则 继承 里氏 子类 父类 替换

里氏替换原则(LSP)是指继承必须确保父类拥有的性质在子类中仍然成立。这是一条有关继承的原则,要求在软件中只要是父类对象能够出现的地方子类就能够出现,而且将父类对象替换成子类对象后,程序不会产生任何错误和异常。反之则不成立。

在应用里氏替换原则时,子类必须完全实现父类的方法,子类可以扩展父类的功能,可以有自己的个性,但尽量不改变父类的功能,不重写父类的方法,如果子类重写父类的方法会使可复用性变差,特别别是运用多态比较频繁时,程序运行出错的概率就会非常大。

如果程序违背了里氏替换原则,则继承类的对象在基类出现的地方会出现运行错误,这时其修正方法是:取消原来的继承关系,重新设计它0们之间的关系。

里氏替换原则是继承复用的基础,是对实现抽象化的具体步骤的规范,也是对开闭原则的补充

标签:原则,继承,里氏,子类,父类,替换
From: https://www.cnblogs.com/wj20040225/p/16913663.html

相关文章

  • 网页动画的12原则,帮你做出漂亮的动画效果
    译者| @EthonLau作者|@donovanh原文| https://cssanimation.rocks/principles/作为前端的设计师和工程师,我们用css去做样式、定位并创建出好看的网站。我们经常用......
  • 设计模式的基本原则
    设计模式设计模式的世界丰富多彩,比如生产一个个「产品」的工厂模式,衔接两个不相关接口的适配器模式,用不同的方式做同一件事的策略模式,构建步骤稳定、根据构建过程的不同配置......
  • 智能传感器之功耗优化原则
    功耗优化和软件优化是很类似的,可以参考软件优化的原则。不要过早优化开始优化之前,至少得有一个具备全功能的雏形了。没有全功能雏形就开始优化,那是瞎猫捉耗子。先分析后优化......
  • 里氏转换
    1、里氏转换1)子类可以赋值给父类2)如果父类中装的是子类对象,那么可以将这个父类强转为子类对象usingSystem;namespace里氏转换{classProgram{......
  • 第2章搭建CRM项目开发环境-数据库的设计表设计原则,设计结构,实例
    第2章搭建CRM项目开发环境-数据库的设计表设计原则,设计结构,实例2.1CRM项目数据库设计2.1.1数据库设计原则我们可以结合项目原型来考虑数据库设计,市场活动,用户,这些都......
  • mysql 索引优化原则总结(limit where in like )
    优化原则:1.wherein和like效果等同,所以如果某个字段需要wherein或者like,请将该字段放到索引的最后2.limitstartnum,当start越大时候扫描的行数越多(即便是命中索引),越......
  • 使用Regex正则表达式替换.txt文本文件中指定的词
     1///<summary>2///替换文本文件中的词3///</summary>4///<paramname="filePath"></param>5///<paramn......
  • sed 替换字符串和ip ([a-z]+) [0-9.]+
    [root@k8s-master01~]#cataa1.txtaaaabbbcccjfdjkasdfghjzxcvbqwertyuiophelloword[root@k8s-master01~]#sed-nr's#he(.*)rd#\1#gp'aa1.txtllowo[root@k......
  • lightgbm分桶原则
    一、针对连续值的分桶defGreedyFindBin(distinct_values,counts,num_distinct_values,max_bin,total_cnt,min_data_in_bin=3):#INPUT:#distinct_values保存......
  • 配置管理的三类配置库原则
     1三库管理原则项目配置管理的库分为开发库、受控库、产品库。这三个库是相互独立的物理库,其中受控库在逻辑上分为配置库和基线库。1.1开发库存放代码、脚本等开发过......