Java中超类数组中的子类

rde*_*fin 2 java casting arraylist

可能重复:
List<Dog>子类List<Animal>吗?为什么Java的泛型不是隐式多态的?

我有这个代码:

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

objects.add(new B());
Run Code Online (Sandbox Code Playgroud)

哪个B是儿童班o A.它给我一个编译时错误,如下所示:

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

aio*_*obe 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

再看看你的代码吧.也许你倒退并A延伸B

  • 你的意思是'A`延伸'B` (4认同)