2

重複の可能性:サブクラス
?Javaのジェネリックが暗黙的に多形ではないのはなぜですか?List<Dog>List<Animal>

私はこのコードを持っています:

ArrayList<A> objects = new ArrayList<A>();

objects.add(new B());

B子クラスoはどこにありますかA。次のようなコンパイル時エラーが発生します。

ArrayList型のメソッドadd(A)は、引数(B)には適用できません。

4

1 に答える 1

10

これはコンパイルされ、正常に実行されます。

import java.util.ArrayList;

class A {
}

class B extends A {
}

class Test {
    public static void main(String[] args) {
        ArrayList<A> arraylist = new ArrayList<A>();
        arraylist.add(new B());
    }
}

コードをもう一度見てください。おそらくあなたはそれを後方に取得してA拡張しBますか?

于 2012-08-26T20:17:10.967 に答える