- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 里氏代换原则 总结: 里氏代换原则是对开闭原则的扩展 开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据 * *
您可能关注的文档
最近下载
- 2025年江西教师招聘笔试小学语文真题及解析 .pdf VIP
- 2024年北京预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- 2024年全省预防接种技能竞赛理论考试题库资料-下(判断题汇总).pdf VIP
- 人教版语文五升六暑假作业每日一练(共40天).docx VIP
- 数控机床自动回转刀架设计.doc VIP
- 2024年山东省预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- 某国企公司纪委开展酒驾醉驾职工违法涉罪问题治理工作自查报告.docx VIP
- 2025监督执纪工作规则.pptx VIP
- 2024年海南省预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- 数据中心灾难恢复策略与实施.docx VIP
文档评论(0)