型は飛ばすようになりました。しても多態したければ、明示的に書けば多態させることもできます。みたいにclass-wide型にすればいいです。サブプログラムの事前条件です。継承されませんが、該当サブプログラムが呼び出されれば動作します。他とは無関係に評価されます。する際に上手く再定義しないとLSPを満たせなくなります。例で追加した不変条件は消しておきます。仮定するのが妥当です。そのルールを破っています。使うのは推奨できません。継承され、派生型の文脈で再解釈されます。省略これはコンパイルエラーになります。仮定するのが妥当ですが、それで嬉しい場合はまずないですし。同様にコンパイルエラーでいいはずですが「色々便利な使い方」のために見逃されています。条件を緩めることしかできないというルールに沿うため継承したものと論理和が取られます。Main;注意しないといけないのは事前条件は多態しないということです。触れましたように事前条件の式の中での呼び出しは多態しません。それとは別に、事前条件の書かれているサブプログラム自体を多態呼び出ししても事前条件は多態しません。多態呼び出ししてみます。評価されて実行時エラーになります。確かに派生先では事前条件を緩めることができますが、アップキャストして基底型として扱っているときは基底型の条件に沿わないとLSPを満たせないからです。これに関して詳しく説明しようとしますと文章量が必要になりますし、私が説明するよりもAARMの該当箇所を読んでいただいたほうがいいかなと......。http://ada-auth.org/standards/2xaarm/html/AA-6-1-1.html#p38......わかんないですよねー。規格の文面なんて前提知識がないと意味不明です。えーと、D言語のコンパイラdmdに対するバグ報告からの議論を読んでいただいたほうがわかりやすいと思います。Meyer先生の「オブジェクト指向入門」の該当箇所も示されています。8ぐらいで直りました。dmdはまだ直ってないようです。サブプログラムの事後条件です。継承されませんが、該当サブプログラムが呼び出されれば動作します。呼び出し側にとっては表明されていない隠された事後条件みたいに考えればよいと思います。実際の返値の値域は表明されたものよりも狭いのですが、呼び出し側はそれに依存することはできない、みたいな。異なりLSPの上で問題はないため使っていいです。