publicclassCheck{publicvoidresize(Rectanglerectangle){while(rectangle.getWidth()>=rectangle.getHeight()){rectangle.setHeight(rectangle.getHeight()+1);System.out.println("长"+rectangle.getHeight()+"宽"+rectangle.getWidth());}System.out.println("长"+rectangle.getHeight()+"宽"+rectangle.getWidth(...
主题简介:里式替换原则是面向对象设计中的一个重要原则,也是SOLID原则中的一部分。它指导我们如何构建具有继承关系的类和接口,以保持代码的稳健性和一致性。该原则强调子类应该能够无缝替换其父类,而不会影响程序的正确性。在本文中,我们将深入探究里式替换原则的原理,详细介绍它在软件设计中的意义,并通过示例代码来...
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)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则...
2.里氏替换原则(Liskov Substitution Principle) 1.定义 里氏替换原则的定义有两种,据说是由麻省理工的一位姓里的女士所提出,因此以其名进行命名。 定义1:如果对一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1所定义的程序P中在o1全都替换成o2时,程序的行为不发生任何变化,那么T2为T1的子类。
里氏替换原则(Liskov Substitution Principle) 开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础。它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码。抽象(Abstraction)和多态(Polymorphism)是实现这一原则的主要机制,而继承(Inheritance)则...
这里的所有观点摘抄自《敏捷软件开发原则、模式与实践》,原著Robert C. Martin,邓辉等译。 李氏替换原则 假设有一个函数f,接受一个指向某个基类B的指针或者引用。如果把B的派生类D的对象作为参数传给f,会导致f出现错误行为。那么D就违反了LSP。 另外一种情况,假定要对传入的对象D做测试,看D是否满足f所需要的条...
里氏替换原则(Liskov Substitution Principle) 开放封闭原则(Open Closed Principle)是构建可维护性和可重用性代码的基础。它强调设计良好的代码可以不通过修改而扩展,新的功能通过添加新的代码来实现,而不需要更改已有的可工作的代码。抽象(Abstraction)和多态(Polymorphism)是实现这一原则的主要机制,而继承(Inheritance)则...
一、LSP简介(LSP--Liskov Substitution Principle):定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。子类型必须能够替换它的基类型。LSP又称里氏替换原则。对于这个
里氏置换原则(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. 所有引用基类的地方必须能够透明的使用其子类对象。 也就是说,只要父类出现的地方子类就能够出现,而且替换为子类不会产生...