里氏替换原则(Liskov Substitution Principle, LSP)是面向对象设计的基本原则之一,由芭芭拉·里氏(Barbara Liskov)在1988年提出。它指出,所有引用基类(父类)的地方必须能透明地使用其子类的对象,即子类对象可以替换掉程序中父类对象的位置,而程序的逻辑不会发生变化。简单来说,就是子类可以扩展父类的功能,但不能改变父...
里氏替换原则的目的是使用约定的方式,让使用继承后的代码具备良好的扩展性和兼容性。 在日常开发中使用继承的地方并不多,在有些公司的代码规范中也不会允许许多层继承,尤其是一些核心服务的扩展。而继承多数使用在系统架构初期定义好的逻辑上或抽象出的核心功能里。如果使用了继承,就一定要遵从里氏替换原则,否则会让...
里氏替换原则本质是开闭原则上面的进一步强调父类特性在子类的可用性。
1、里氏替换原则 1)所有使用基类的地方必须能够使用子类进行替换,而程序的行为不会发生任何变化(替换为子类之后不会产生错误或者异常)。只有这样,父类才能真正被复用,子类能够在父类的基础上增减新的属性和行为。才能真正的实现多态行为。 2)当子类继承父类的时候,子类就拥有了父类的属性和行为。 3)里氏替换原则是...
Java集合框架的里氏替换原则 在Java集合框架中,里氏替换原则(Liskov Substitution Principle,LSP)是一个非常重要的设计原则。它描述了在软件系统中,如果S是T的子类型,那么程序中所有使用T的地方都可以用S来替换,而不会改变程序的行为。这个原则有助于确保代码的可扩展性和可维护性。
java 设计原则(六)里氏替换原则 定义:如果对每一个类型T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。 定义扩展:一个软件实体如果适用一个父类的话,那一定适用于其自类,所有引用父类的地方必须能透明地使用其自...
具体来说,Java里氏替换原则包含以下几个方面: 1. 子类必须完全实现父类的抽象方法。 2. 子类可以有自己的属性和方法,但不能覆盖父类中非抽象的方法。 3. 子类中可以增加自己特有的方法。 4. 当子类重载父类方法时,方法的前置条件(即方法输入参数)要比父类更宽松;后置条件(即返回值)要比父类更严格。 5. 当...
从里氏替换原则来看,就是有子类出现的地方父类未必就可以出现。 覆盖或实现父类的方法时输入参数可以被放大 里氏替换原则也要求制定一个契约,就是父类或接口,这种设计方法也叫做Design by Contract(契约设计)。 子类中方法的前置条件必须与超类中被覆写的方法的前置条件相同或者更宽松。
简介:Java设计模式七大原则之里氏替换原则 写在前面 上篇文章里我们说到了Java开发中的七大原则之一的开闭原则,明白了开闭原则主要是为了应当对扩展开放,对修改关闭。 保证了开闭原则,才能使类与类之间的扩展性变得更强,安全性也会变得更高。 接下来我们来解释一下里氏替换原则。