加载中...
里氏替换原则由计算机科学家芭芭拉·利斯科夫提出,是面向对象设计五大原则之一。它要求子类型必须能够替换其父类型而不破坏程序的正确性,即任何使用父类对象的地方都应能透明地替换为子类对象。

| 中文名 | 里氏替换原则 |
| 外文名 | Liskov Substitution Principle |
| 提出者 | 芭芭拉·利斯科夫 |
| 提出时间 | 一九八七年 |
| 所属 | 面向对象设计原则 |
里氏替换原则是面向对象设计中关于继承与多态的重要准则,由图灵奖得主芭芭拉·利斯科夫(Barbara Liskov)于一九八七年提出。其核心思想是:凡是能使用基类对象的地方,都应当能够用其派生类对象替换,而不改变程序原有的正确性与预期行为。
该原则是著名的面向对象设计原则集合中的一条。它对继承关系提出了行为层面的约束,强调继承不仅要满足语法上的类型兼容,更要满足语义上的行为兼容。若子类破坏了父类所承诺的契约,即便编译通过,也会在运行时引发意外错误,这被视为对该原则的违反。
一个经典的反例是正方形与矩形的继承:如果让正方形继承矩形,并使宽高联动,那么依赖矩形独立设置宽高的代码在传入正方形时便会失效,这正是违反里氏替换原则的表现。遵循该原则有助于设计出健壮的类层次结构,让多态调用安全可靠,也是构建可扩展框架和插件体系的基础。
问:里氏替换原则和多态是什么关系?答:多态是语言机制,允许用父类引用指向子类对象;里氏替换原则是设计约束,保证这种替换在行为上是安全的,可以说它是多态得以正确工作的前提。
问:违反该原则会有什么后果?答:调用方需要通过类型判断来区别对待不同子类,继承的优势荡然无存,代码变得脆弱且难以扩展,常伴随大量分支判断。

| 中文名 | 里氏替换原则 |
| 外文名 | Liskov Substitution Principle |
| 提出者 | 芭芭拉·利斯科夫 |
| 提出时间 | 一九八七年 |
| 所属 | 面向对象设计原则 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧