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)?{
}
}