LSPは、クラスがその基本クラスの代わりになるべきであると述べています。つまり、派生クラスと基本クラスは意味的に同等でなければなりません。
しかし、LSPはインターフェイスを実装するクラスにも適用されますか?言い換えると、クラスによって実装されたインターフェイスメソッドが、ユーザーが期待するものと意味的に異なる場合、これはLSPの違反と見なされますか?
7
はい。インターフェイス、抽象クラス、完全クラスの場合、LSPに違反するのとまったく同じ理由と結果は重要ではありません。LSPは、消費者が一般的な方法であなたのタイプを扱うことができるように、期待を設定して満たすことです。
—
ジミー・ホッファ
概して(違いは知っていますが、ここで一般化しています)、インターフェースは純粋な抽象クラス(C ++用語)にやや似ているため、Liskovはインターフェースとそれらを実装するクラスに適用する必要があります。
—
ジェシーC.スライサー