首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java设计原则--里氏替换原则

java设计原则--里氏替换原则

作者头像
在水一方
发布于 2022-06-14 16:39:13
发布于 2022-06-14 16:39:13
1.3K0
举报
文章被收录于专栏:在水一方在水一方

java的核心特性之一:继承,Java中的继承时单继承,子类继承了父类后就可以使用父类的属性和方法(私有属性和方法以外),子类需要重写父类的抽象方法,继承机制在一定程度上提高了代码的复用性,提高了代码的可拓展性,但也是有缺点

继承缺点

缺点一:继承时侵入性的,也就是说子类继承了父类就必须拥有父类所有的属性和方法

缺点二:灵活性降低,子类必须拥有父类的属性和方法,让子类多了些约束

缺点三:增强了耦合性,当父类的常量、变量和方法被修改时需要考虑子类的修改

里式替换作用

Java的单继承机制从总体上看是利大于弊,那么,如何让利的优势发挥最大,同时减少弊的带来的麻烦呢,于是就有了里式替换原则,里氏替换原则为良好的继承定义了一个规范

我们在做系统设计时,经常会定义一个接口或抽象类,然后编码实现,调用类则直接传入接口或抽象类,其实这里已经使用了里氏替换原则

举一个CS的案例: 枪的主要职责是射击,如何射击在各个具体的子类中定义,手枪是 单发射程比较近,步枪威力大射程远,机枪用于扫射。在士兵类中定义 了一个方法killEnemy,使用枪来杀敌人,具体使用什么枪来杀敌人,调 用的时候才知道,AbstractGun类的源程序如代码清单如下图所示。

写了个办成品,待续............

注意 在类中调用其他类时务必要使用父类或接口,如果不能使 用父类或接口,则说明类的设计已经违背了LSP原则

本文内容参考设计模式之禅,仅用于个人学习,如有不妥请联系删除

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 继承缺点
  • 里式替换作用
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档