里氏替换原则用于规范类的继承,防止类父类的修改过多影响到子类而提出的一种设计原则。
-
里氏替换原则在1988年,由麻省理工学院的Liskov女士提出的。
-
如果对每个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序 P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1 的子类型。所有引用基类的地方必须能透明地使用其子类的对象。
-
在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法
-
里氏替换原则告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下,可 以通过聚合,组合,依赖来解决问题。
举例:这条原则用于规范的约束,继承需要谨慎使用
public class Liskov {
public static void main(String[] args) {
A a = new A();
System.out.println(a.func1(8, 3));
B b = new B();
System.out.println(b.func1(8, 3)); // 求 8 - 3,由于B类重写A类的方法而造成了歧义
System.out.println(b.func2(8, 3)); //
}
}
class A {
public int func1(int a, int b) {
return a - b;
}
}
class B extends A{
// 重写了父类的func1方法
public int func1(int a, int b) {
return a + b;
}
public int func2(int a,

里氏替换原则是面向对象设计的基本原则之一,由Liskov女士在1988年提出。该原则规定子类应当可以替换父类并保持程序行为不变。遵循这一原则可以降低耦合,提高软件系统的可扩展性和可维护性。在继承时,应谨慎重写父类方法,避免影响原有行为。文中通过代码示例展示了如何遵循里氏替换原则进行类的设计,以减少因继承导致的问题。
最低0.47元/天 解锁文章
374

被折叠的 条评论
为什么被折叠?



