加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何提升代码逼格----里氏替换原则

发布时间:2020-12-14 02:12:33 所属栏目:百科 来源:网络整理
导读:( 里氏替换原则(LSP)): 里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义: 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。(1) 子类中可以增加自己特有的方法。(2) 当子类的方法重载父

( 里氏替换原则(LSP)):

里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。(1)
子类中可以增加自己特有的方法。(2)
当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

1.子类必须完全实现父类的方法.
定义接口和抽象类,调用类则直接传入接口或抽象类.
注意:开发中,类中调用其它类时务必使用接口或父类,如果不能使用,则说明类违背了LSP原则.
注意:子类不能完整实现父类的方法,或者父类的某些方法在子类中发生“畸变”,则建议断开父子继承关系,采用依赖,聚合,组合等关系代替继承.
2. 子类可以有自己的个性.
4. 覆写或实现父类的方法时输出结果可以被缩小.
假设父类的方法返回值为类型Map,子类的相同方法(重载或覆写)的返回值 等于 Map 或者小于Map的HashMap.

http://zg0423.blog.163.com/blog/static/2059840162013227111717916/

总结: 项目中,采用LSP,尽量避免子类拥有“个性”,子类和父类之间关系难以调和, 把子类当父类使用,子类的“个性”被抹杀,委屈点. 将子类单独作为一个业务使用,则会让代码间的耦合关系变得扑朔迷离(缺乏类替换的原则)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读