置換原則に違反することなく、事前条件と事後条件がどのように機能する必要があるかを理解するのに非常に苦労しています。では、クラスがRectangle
あり、Square
それらを関連付ける方法を考えてみましょう。サブクラスにする必要があるのはどれですか?
したがって、a の事前条件はSubtype
より弱くなる可能性があることを理解しています。つまり、アウト サブクラスで主要な「セット」を取得できます。一方、事後条件はより強力になる可能性があるため、マイナーな「セット」を返すことができます。物事の。これらのルールを私の例に適用するにはどうすればよいですか?
ベースクラスはサブクラスよりも「行う」必要があることを読んだので、それはSquare
私たちのベースクラスとサブクラスでなければならないと思いますRectangle
。したがって、 の事前条件はSquare
assert thatheight == width
である必要がありますが、 の事後条件と事前条件はRectangle
どうでしょうか?