Java中超类数组中的子类

时间:2012-08-26 20:13:51

标签: java casting arraylist

  

可能重复:
  Is List<Dog> a subclass of List<Animal>? Why aren't Java's generics implicitly polymorphic?

我有这段代码:

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

objects.add(new B());

其中B是子类o A。它给我一个编译时错误:

类型ArrayList中的方法add(A)不适用于参数(B)

1 个答案:

答案 0 :(得分: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