1、在线培训:面向对象设计,第七章,目标,掌握面向对象设计原则之里氏代换原则,概述,面向对象设计原则在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是单一职责原则开闭原则里氏代换原则依赖注入原则接口分离原则迪米特原则组合/聚合复用原则这些原则是面向对象设计的基石,坚持这些原则是提升面向对象设计质量的重要保障,里氏代换原则,定义:LSP:Liskov Substitution Principle,Liskov是该原则的提出者该原则的思想是:在任何父类出现的地方都可以用它的子类来代换,而不影响功能里氏代换原则是对开闭原则的扩展采用开闭原则必然用到抽象和多态,而这离不开继承里氏代换原
2、则就是对如何良好继承提出了衡量依据,里氏代换原则,举例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,因为企鹅不会飞,不能完全代换父类,里氏代换原则
3、,举例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,里氏代换原则,总结:里氏代换原则是对开闭原则的扩展开闭原则的实现离不开继承,而里氏代换原则对如何良好继承提出了衡量依据,