【设计模式】Liskov替换原则(Liskov Substitution Principle)由来定义场景示例详解 源自专栏《Java 原理用法示例 &&代码规范详解系列目录》欢迎关注、收藏 不错过最新干货文章 1. 由来 Liskov替换原则是由计算机科学家Barbara Liskov在1987年提出的,她的名字也因此得名。这个原则是面向对象编程中的重要原则之一,属于SOLID设计...
publicclassJavaDiscountPriceextendsJavaBook{publicJavaDiscountPrice(Stringname,Stringauth,Doubleprice){super(name,auth,price);}publicDoublegetJavaDiscountPrice(){returnsuper.getPrice()*0.6;}} 优点: 里氏替换原则是实现开闭原则的重要方式之一。 它克服了继承中重写父类造成的可复用性变差的缺点。 它是动作正...
2,在Java中呢,直接在整个对象的方法表中寻找兼容的方法,所以你也没办法确定会选择父类还是子类的,比如实际参数是TSon,父类入参是TSon,子类入参是TFather,那么会选择父类的方法;如果实际参数是TSon,父类入参是TFahter,子类入参是TSon,那么会选择子类的。如果实际参数是TSon,父类入参是TSon,子类入参是TGrandson,...
的对象子类型多态LiskovSubstitutionPrinciple(LSP)JAVA中的强制规则: --子类型可以增加方法但是不可删--子类型需要实现抽象类型中的所有未实现方法--子类型中重写的方法必须有相同或子类型的返回值或者符合co-variance的参数--子类型中重写的方法必须使用同样类型的参数或者符合contravariance的参数--子类型重写的方法不能...
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则...
只要父类能出现的地方子类就能出现,并且将父类替换为子类时不会产生任何错误或异常。反过来就不行,有子类出现的地方,父类不一定能适应。 里氏替换原则的目的:规范继承时子类的书写规则,保持父类方法不被覆盖 从上面可以看出以下几点 里氏替换原则是针对继承而言的, ...
一、LSP简介(LSP--Liskov Substitution Principle): 定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。 子类型必须能够替换它的基类型。LSP又称里氏替换原则。
2.里氏替换原则(Liskov Substitution Principle) 1.定义 里氏替换原则的定义有两种,据说是由麻省理工的一位姓里的女士所提出,因此以其名进行命名。 定义1:如果对一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1所定义的程序P中在o1全都替换成o2时,程序的行为不发生任何变化,那么T2为T1的子类。
packagecom.bz.design.principle.liskov.improve;publicclassLiskovImprove001{publicstaticvoidmain(String[]args){Aa=newA();System.out.println("11-3="+a.func1(11,3));System.out.println("1-8="+a.func1(1,8));System.out.println("---");Bb=newB();// 因为B类不在继承A类,因此调用者,不会...
里氏置换原则(Liskov Substitution Principle),简称LSP 定义: Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it. 所有引用基类的地方必须能够透明的使用其子类对象。 也就是说,只要父类出现的地方子类就能够出现,而且替换为子类不会产生...