这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 简单来说的话,就是当我们使用继承时,遵循里氏替换原则。
定义 注:类B继承类A时,除添加新的方法完成新增功外,尽量不要重写父类A的方法,也尽量不要重载父类A的方法。 继承包含这样一层含义:父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约, 虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改, 就会对整个继承体系造成破坏。而里氏替换原则就是表达了这一层含义。 继承作为面向对象三大特性之一,在给程序设计带来巨大便利的同时,也带来了弊端。 比如使用继承会给程序带来侵入性,程序的可移植性降低,增加了对象间的耦合性,如果一个类被其他的类所继承, 则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后, 所有涉及到子类的功能都有可能会产生故障。
继承的风险 那就让我们一起看看继承的风险,如下:
class A { public int func1(int a, int b) { return a - b; } }
public class Client { void Start() { A a = new A(); Debug.Log(“100-50