中心名称-班级号-学员姓名-里氏代换原则.ppt

中心名称-班级号-学员姓名-里氏代换原则.ppt

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在线培训:面向对象设计 第七章 目标 掌握面向对象设计原则之里氏代换原则 概述 面向对象设计原则 在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是 单一职责原则 开闭原则 里氏代换原则 依赖注入原则 接口分离原则 迪米特原则 组合/聚合复用原则 这些原则是面向对象设计的基石,坚持这些原则是提升面向对象设计质量的重要保障 里氏代换原则 定义: LSP:Liskov Substitution Principle,Liskov是该原则的提出者 该原则的思想是:在任何父类出现的地方都可以用它的子类来代换,而不影响功能 里氏代换原则是对开闭原则的扩展 采用开闭原则必然用到抽象和多态,而这离不开继承 里氏代换原则就是对如何良好继承提出了衡量依据 里氏代换原则 举例1 : class Bird { public void eat() { } public void fly() {System.out.println(用翅膀飞); } } class Penguin extends Bird { } class Test { public static void showFly(Bird bird) { bird.fly(); } public static void main(String[] args) { showFly(new Bird()); showFly(new Penguin()); } } 企鹅继承鸟类不符合LSP,因为企鹅不会飞,不能完全代换父类 里氏代换原则 举例2 : class Dolphin extends Pet { public void incrediBubble() { System.out.println(神奇泡泡打砖块);} } public class Test { public static void showPlay(Pet pet) { if (pet instanceof Dog) { Dog dog = (Dog) pet; dog.catchingFlyDisc(); } else if (pet instanceof Penguin) { Penguin pgn = (Penguin) pet; pgn.swimming(); } } public static void main(String[] args) { Dolphin dolphin = new Dolphin(); showPlay(dolphin); } } 子类Dolphin无法代换父类Pet 里氏代换原则 总结: 里氏代换原则是对开闭原则的扩展 开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据 * *

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档