根据题目的需求,我们需要设计一个动物饲养员类(Feeder)和几个动物类(比如老虎、羊),并实现它们之间的关系。
首先,我们可以定义一个抽象的动物类(Animal),其中包含动物的name属性和feeder属性,以及一个抽象的方法eat()用于各个动物类实现自己的吃食行为。public abstract class Animal { private String name; private Feeder feeder; public Animal(String name) { this.name = name; } public void setFeeder(Feeder feeder) { this.feeder = feeder; } public abstract void eat(Food food);}
然后我们可以定义具体的动物类,比如老虎类(Tiger)和羊类(Goat),它们继承自动物类,并且实现自己的eat()方法。public class Tiger extends Animal { public Tiger(String name) { super(name); } @Override public void eat(Food food) { System.out.println(getName() + "正在咬着香喷喷的" + food.getName()); getFeeder().thank(); }}public class Goat extends Animal { public Goat(String name) { super(name); } @Override public void eat(Food food) { System.out.println(getName() + "正在咬着香喷喷的" + food.getName()); getFeeder().thank(); }}
接下来,我们定义一个饲养员类(Feeder),它有一个name属性和一个feed()方法用于喂养动物。public class Feeder { private String name; public Feeder(String name) { this.name = name; } public void feed(Animal animal, Food food) { animal.eat(food); } public void thank() { System.out.println("亲爱的" + getName() + ",太感谢你了!"); } public String getName() { return name; }}
最后,我们可以在测试程序中创建动物饲养员和动物对象,并调用feed()方法进行喂食。根据裁判测试程序样例,可以按照以下方式编写主函数:public class Main { public static void main(String[] args) { String feederName; String animalName; Scanner scanner = new Scanner(System.in); feederName = scanner.nextLine();// 中国人 Feeder feeder = new Feeder(feederName); animalName = scanner.nextLine();// 华南虎 Tiger tiger = new Tiger(animalName);// 创建一只老虎 tiger.setFeeder(feeder);// 指定其饲养人员 Food foodMeat = new Meat();// 准备食物 feeder.feed(tiger, foodMeat);// 饲养员喂养动物食物 animalName = scanner.nextLine();// 藏羚羊 Goat goat = new Goat(animalName);// 创建一只羊 goat.setFeeder(feeder);// 指定其饲养人员 Grass foodGrass = new Grass();// 准备食物 feeder.feed(goat, foodGrass);// 饲养员喂养动物食物 }}
这样,当运行程序时,你可以输入饲养员的名字、各个动物的名字,并根据饲养员为动物准备的食物进行喂食操作。程序会输出相应的结果。
希望这个例子对你有所帮助!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |