正方形と長方形
Liskov 置換原則に反する古典的な例として、円と楕円の問題(Square-Rectangle problem と呼ばれることもあります)があります。
一見すると、h(高さ)と w(幅)という属性を持つ Rectangle クラスを定義し、その Rectangle を継承した Square クラスを定義できそうに思えます。結局のところ、正方形は「長方形の一種」ですよね。
しかし残念ながら、この直感はオブジェクト指向設計には当てはまりません。
この演習はコースの一部です
Python によるオブジェクト指向プログラミング
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define a Rectangle class
____
# Define a Square class
____