根据题目的需求,我们需要设计一个动物饲养员类(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官方接口),如未能正确解答您的问题,请继续追问。