java - 数据结构的多态性

标签 java arraylist polymorphism

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/

相关文章:

java - 如何根据列表中的两个不同值获取 2 个计数并检查两个计数是否相等?

java - 为什么父类(super class) B 调用子类 A 的方法?

java - 扩展另一个类的变量不可见性

c++ - 多级继承中的析构函数调用 (c++)

java - TelephonyManager.EXTRA_INCOMING_NUMBER 在 android 9 中为 null

java - 我无法使用 musicg 库中的 FingerprintSimilarity

java - 如何在运行时捕获方法类型(泛型类型)

java - PORTABLE 和 Machine Independent 有什么区别?

java - 用新的字符串值替换 ArrayList 值

java - 我想逐行读取文件并拆分字符串以用作新对象的属性