Possible Duplicate:
Implementations and Collections
我的 super 类(class)是考试。我的子类(class)之一是分析。
这在我的IDE中是有效的
Exam object = new Analytical();
然而事实并非如此。
ArrayList<Exam> object = new ArrayList<Analytical>();
错误是从 new 到语句末尾,它显示“将对象类型更改为 ArrayList。所以我的问题是如何正确利用此数据结构的多态性。谢谢。
最佳答案
泛型类型声明的两侧不能有不同的参数化类型。
因此,您必须在两侧使用相同的类型..
应该是:-
ArrayList<? extends Exam> object = new ArrayList<Analytical>();
或
ArrayList<Exam> object = new ArrayList<Exam>();
或
ArrayList<? extends Exam> object = new ArrayList<Exam>();
多态性,不适用于参数化类型..
关于java - 数据结构的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12678215/