リスコフの置換原則
SOLID原則の一つ。Barbara Liskovによって提唱された。サブタイプは、そのスーパータイプと置換可能でなければならないという原則。
つまり、基底クラスを使用しているコードは、派生クラスに置き換えても正しく動作する必要がある。
違反の例:
- 派生クラスで例外を投げる(基底では投げない)
- 事前条件を強化する
- 事後条件を弱化する
- 基底クラスの不変条件を破る
抽象化における「正しい継承関係」を定義する原則。IS-A関係が本当に成り立つかを検証する基準になる。
開放閉鎖の原則を支える原則でもある。LSPに違反すると、拡張時に既存コードの修正が必要になる。