我有一个带有几个子类的超类。
public abstract class SuperClass {
}
public class SubClass1 extends SuperClass {
}
我创建了一个 ArrayList 来包含 SuperClass 类型的对象。
private ArrayList<SuperClass> list = new ArrayList<SuperClass>();
我在 Eclipse 中看到的错误数量很多。
首先,任何添加子类对象的尝试都会出错:
SubClass1 object;
object = new SubClass1(parameters);
list.add(object) //I get error: The method add(SuperClass) in the type
//ArrayList<SuperClass> is not applicable for the arguments
//(SubClass1)
稍后在代码中,当我尝试将一种类型转换为另一种类型时,会遇到更多问题:
for (SuperClass obj : list){
if (obj instanceof SubClass1){ //This gets an error like this:
.... //Incompatible conditional operand types
} // SuperClass and SubClass1
更不用说我调用的一些方法在超类中明确定义,这些方法对于类型来说是未定义的。我在这里敲我的头。我完全不知道问题可能是什么。
如果你们可以为我指出一些可能的方向,我将非常感激。我不知道我是否提供了足够的信息,所以请提出您认为可能适用的任何问题。
提前致谢。