Javaは静的言語であり、配列に関しては動的チェックがあることを知っています:しかし、なぜこれが起こるのか理解できません.A[]がBのサブタイプである場合の両方のケースで、誰かがこの例を説明してもらえますか? []、または B[] は A[] のサブタイプですか? どちらが失敗し、その理由は?
f(A[] as) {
as[0] = new A(); // **?!**
}
B[] bs = new B[10];
f(bs); // **?!**
B b = bs[0]; // **?!**