用Java程序完成以下场景(用继承多态):有一个主人(Master类),他养了两只宠物(Pet类)

发布网友 发布时间:2022-04-22 09:42

我来回答

1个回答

热心网友 时间:2023-10-30 13:56

public class Run {
public static void main(String[] args) {
Master master = new Master();
master.feedDog("鸡骨头");
master.feedCat("鸡骨头");
}
}
class Master {
private Pet mPet;
private Food mFood;
public void feedCat(String food) {
mPet = new Cat();
mFood = new Food(food);
mPet.eat(mFood);
}
public void feedDog(String food) {
mPet = new Dog();
mFood = new Food(food);
mPet.eat(mFood);
}
}
class Dog extends Pet{
@Override
public void eat(Food food) {
System.out.println("正在喂小狗吃"+food.getFood());
if (food.getFood().matches(Food.BONE)) {
System.out.println("小狗正在吃"+food.getFood()+"!");
}else {
System.out.println("但是小狗不喜欢吃"+food.getFood()+"!");
}
}
}
class Cat extends Pet{
@Override
public void eat(Food food) {
System.out.println("正在喂小猫吃"+food.getFood());
if (food.getFood().matches(Food.FISH)) {
System.out.println("小猫正在吃"+food.getFood()+"!");
}else {
System.out.println("但是小猫不喜欢吃"+food.getFood()+"!");
}
}
}
class Food {
public final static String BONE = ".*骨.*";
public final static String FISH = ".*鱼.*";
private String food;
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public Food(String food) {
this.food = food;
}
}
class Pet {
public void eat(Food food) {

}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com