我希望能够将Parrot(或任何其他动物)对象传递给方法addAnimal(动物动物)。我知道我可以直接从构造函数中将动物添加到数组列表中,但是稍后将添加其他动物,这些动物将不在构造函数中。因此,公共方法。
我如何允许各种动物作为参数传递?
**编辑修复构造函数和基本语法问题。问题依然存在。
class Zoo extends Animal{
private ArrayList<Animal> animals;
public Zoo {
Parrot parrot = new Parrot();
animals.addAnimal(parrot); // cannot find methodaddAnimal(parrot)
}
public void addAnimal(Animal animal) {
animals.add(animal);
}
}
class Animal {
// variables and methods
}
class Parrot extends Animal {
// variables and methods
}
答案 0 :(得分:0)
您正在尝试调用ArrayList
对象的addAnimal()
方法,该方法不存在,而是需要调用addAnimal()
类对象的Zoo
,如图所示在下面的代码中注释:
class Zoo {
private ArrayList<Animal> animals;
//create a main method
public static void main(String[] args) {
Zoo zoo = new Zoo();//Create Zoo object
Parrot parrot = new Parrot();
zoo.addAnimal(parrot);//add parraot to list by calling addAnimal
}
public void addAnimal(Animal animal) {
animals.add(animal);
}
}
答案 1 :(得分:0)
import java.util.ArrayList;
import java.util.List;
class Zoo {
private List<Animal> animals = new ArrayList<Animal>();
public void addAnimal(Animal animal) {
animals.add(animal);
}
public static void main(String... args){
Zoo zoo = new Zoo();
zoo.addAnimal(new Parrot());
}
}
class Animal {
// variables and methods
}
class Parrot extends Animal {
// variables and methods
}