Arraylist for subclasses

时间:2017-04-04 10:49:42

标签: java arraylist

我有一个Vehicle超类,然后我有一些子类。我正在尝试使用一个数组列表,将所有子类中的对象添加到同一个列表中,但我很快就会出现。

我目前在我的程序类中有列表,但我已将它移动了一点。

这是我在Program中的代码:

ArrayList<Vehicles> Inventorie = new ArrayList<>();

public void setInventorie(Car newCar) {
    Inventorie.add(newCar);
}

这是我在Car中的代码:

public void addCar(){
    System.out.println("Make: ");
    Make = scan.nextLine();
    System.out.println("RegNr");
    regNr = scan.nextInt();
    System.out.println("Year");
    year = scan.nextInt();
    setValue();
    Car c1 = new Car(make, regNr, Year);
     Program.setInventorie(c1);
}

在Car中我得到了&#34;非静态方法&#39; setInventorie(Project1.Vehicles)&#39;无法从静态上下文中引用。&#34;

我还必须注释掉main方法,否则编译器无法解析符号Inventorie(数组列表名称)。

试图尽我所能解释我的问题,希望有人可以提供帮助。 是的,我是新手,所以它看起来真的很愚蠢,但它是我能做的最好的。

由于

1 个答案:

答案 0 :(得分:0)

我猜这是行Program.setInventorie(c1);。您需要创建Program类的实例并在其上调用setInventorie()setInventorie()不是静态方法。

e.g:

Program myProgram = new Program();
myProgram.setInventorie(c1);