可能的重复:
实现和集合
我的超级课是考试。我的子类之一是分析。
这在我的 ide 中是有效的
Exam object = new Analytical();
然而事实并非如此。
ArrayList<Exam> object = new ArrayList<Analytical>();
错误是从新到语句的结尾,它说“将对象类型更改为 ArrayList。所以我的问题是如何正确利用这种数据结构的多态性。谢谢。
可能的重复:
实现和集合
我的超级课是考试。我的子类之一是分析。
这在我的 ide 中是有效的
Exam object = new Analytical();
然而事实并非如此。
ArrayList<Exam> object = new ArrayList<Analytical>();
错误是从新到语句的结尾,它说“将对象类型更改为 ArrayList。所以我的问题是如何正确利用这种数据结构的多态性。谢谢。
泛型类型声明的两侧不能有不同的参数化类型。
所以,你必须在两边使用相同的类型..
它应该是: -
ArrayList<? extends Exam> object = new ArrayList<Analytical>();
或者
ArrayList<Exam> object = new ArrayList<Exam>();
或者
ArrayList<? extends Exam> object = new ArrayList<Exam>();
多态性,不适用于参数化类型..
Collections
仅在time 期间而不是在 期间检查,因此已采取此措施,因此错误的类型不会进入集合...Compilation
Runtime
ArrayList<? extends Exam> object = new ArrayList<Analytical>();
或者
ArrayList<? extends Exam> object = new ArrayList<Exam>();