【发布时间】:2023-04-03 22:49:01
【问题描述】:
我正在做一个简单的 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?
【问题讨论】:
-
转换或转换?它有所作为。