型の制限の強弱 「強い・弱い」、「狭める・広げる」等が使われる。以下の3つのクラスをもとに、型の制限の強弱を考える。 class A {} class B : A {} class C : B {} それぞれを別ファイルにあると考えると分かりやすい。 AはBの存在もCの存在も知らない。 BはAの存在を知っているが、Cの存在は知らない。 CはAの存在もBの存在も知っている。 このため、以下のような代入が結果となる。 B a = new A(); // NG(Bは知らないので、AがBのように振舞えない) C a = new A(); // NG(Cも知らないので、AはCのように振舞えない) A b…