リスコフの置換原則(Liskov Substitution Principle)
継承関係が正しいかの判断基準。
派生型(サブクラス)は、その基底型(スーパークラス)と置換可能でなければならない。
基底型の変数に派生型の値を代入しても支障をきたさないこと。
サブタイプはスーパータイプのオブジェクトのすべての振る舞いと、更に別の何かを備えたもの。
インターフェイスルール
- 引数の数は同一
- 引数は反変性
- 戻り値は共変性
- 例外は同一または、そのサブタイプ
プロパティルール
- 不変条件
スーパータイプでプロパティAの値がxを超えない場合、サブタイプでもこの条件を保持する必要がある。
- 制約
スーパータイプから新規追加またはオーバーライドされたメソッドは、スーパータイプで許可されていない方法でプロパティの値を変更してはならない。