Java如何修改OldMacDonaldApp以调用Farm类的addAnimal和animalSounds方法
修改后的OldMacDonaldApp类代码
public class OldMacDonaldApp { public static void main(String[] args) { // 实例化Farm农场对象 Farm myFarm = new Farm(); Animal c; c = new Cow("brown"); System.out.println("The " + ((Cow) c).getColor() + " " +c.getType() + " goes " + c.getSound()); myFarm.addAnimal(c); // 将动物添加到农场集合 c = new Chick(3); System.out.println("The " + ((Chick) c).getAge() + " days old " + c.getType() + " goes " + c.getSound()); myFarm.addAnimal(c); // 将动物添加到农场集合 c = new Sheep("fluffy"); System.out.println("The " + ((Sheep) c).getTrait1() + " " + c.getType() + " goes " + c.getSound()); myFarm.addAnimal(c); // 将动物添加到农场集合 c = new Dog("loyal"); System.out.println("The " + ((Dog) c).getTrait2() + " " + c.getType() + " goes " + c.getSound()); myFarm.addAnimal(c); // 将动物添加到农场集合 // 调用农场方法批量输出所有动物的叫声信息 System.out.println("\n=== 农场动物叫声汇总 ==="); myFarm.animalSounds(); } }
核心修改逻辑
- 在main方法入口处先创建
Farm类的实例对象 - 每完成一个动物实例的创建和单条信息打印后,调用
addAnimal()方法将该动物存入农场的集合中 - 所有动物添加完成后,调用
animalSounds()方法即可自动遍历农场内所有动物,输出对应类型和叫声
注意:确保Farm类和OldMacDonaldApp、各个动物实现类在同一个包下,否则需要在OldMacDonaldApp类头部导入Farm类的全限定名。
内容的提问来源于stack exchange,提问作者slimebo1
相关产品推荐
相关产品推荐

