- 追加された行はこの色です。
- 削除された行はこの色です。
[[オブジェクト指向プログラミング>OOP]]
[[オブジェクト指向プログラミング]] > リスコフの置換原則
*リスコフの置換原則(LSP) [#p0ef4b4e]
''LSP: Liskov Substitution Principle''~
'''派生型はその基本型と置換可能でなければならない。'''~
[[単一責任の原則>OOP/単一責任の原則]]でも触れましたがクラスとは責任を顕す為の雛形に過ぎません。~
それ以上でも以下でもないです。必ずしもインターフェイス継承のみを指してる訳では無いのであしからず。
javaで継承の事をextendsと言うように「継承」とは拡張のことです。基底クラスをパワーアップさせる事は出来ても、基底クラスの「責任」に反することは出来ません。
メソッドを使う使わないと言った瑣末な話では無く、もっと抽象的な「責任」に対して反することになります。捉え辛いかもしれませんが判断を誤ると性質の悪い設計ミスで悩む事請け合いです。
class neler{
public:
void kakiko();
};
>class vipper : public neler{}; // おk。vipperはねらーだ
>class mymiku : public neler{}; // ×。kakikoが必要かも知れんがねらーではない
ある意味では最も忌避すべき原則なので心に刻み込んでおいてくだしあ。