リスコフの置換原則の絵を描いた
T 型のオブジェクト x に関して真となる属性を q(x) とする。このとき S が T の派生型であれば、S 型のオブジェクト y について q(y) が真となる。
Tの丸の中にあるものすべてq(x)の丸の中にある場合に、SがTの派生型であればSの丸の中にあるものはすべてq(x)の丸の中にある、という絵。
なんかとても自然すぎて、何を当たり前のことを言ってるの?と思う人もいるかも知れない。というわけでリスコフの置換原則が満たされない場合の絵も描いてみた。
Sがニョッキリとq(x)の外に突き出している。SがTのサブタイプだというなら、SはTの中に収まっているのが自然なわけだ。でも「T 型のオブジェクト x に関して真となる属性を q(x)」を満たさないSの要素yがあるってことは、SはTの中に収まっていない。リスコフの置換原則が守られていないってのはこういう不自然な状況なんだよ、と。