我正在做一个简单的 Zoo 应用程序来理解 Java 中的面向对象概念。
我的模型如下: 1)动物园有许多笼子 2)笼子有猫科动物、灵长类动物或鸟类的混合物 3)动物可以吃、睡或喝 4)猫科动物延伸动物(做额外的猫科动物的事情)5 )灵长类动物扩展动物(做额外的灵长类动物的东西)6)鸟扩展动物(做额外的鸟东西)
问题:
虽然在动物园中处理 x 数量的笼子(笼子的数组列表)非常容易,但我正在努力处理笼子里的动物。我发现我需要一个对象的 ArrayList。
到目前为止一切顺利,但是当我试图找回我的动物并让他抓一个柱子时,它不再是猫科动物,而是一个对象。
public class Cage{
private String name;
private ArrayList<Object> animals = new ArrayList<Object>();
public Cage(String name){
this.name = name;
}
public void addFeline(String name){
Feline newFeline= new Feline(name);
this.animals.add(newFeline);
}
public void addPrimate(String name){
Primate newPrimate= new Primate(name);
this.animals.add(newPrimate);
}
public void addBird(String name){
Bird newBird= new Bird(name);
this.animals.add(newBird);
}
public void removeAnimal(int index){
this.animals.remove(index);
}
public Object getAnimal(int index){
Object myAnimal = this.animals.get(index);
return myAnimal;
}
}
我称之为:
Zoo myZoo = new Zoo("My Zoo");
myZoo.addCage("Monkey Exhibit");
Cage myCage = myZoo.getCage(0);
myCage.addFeline("Leo");
Object MyAnimal = myCage.getAnimal(0);
问题:如何将 Object 转回 Feline 类的实例,以便它可以 Scratch a Post?