电子宠物-多态

来源:互联网 发布:桂林大家庭有淘宝么 编辑:程序博客网 时间:2024/05/17 02:12
import java.util.*;

public class  PetShop5
{
public static void main(String[] args)
    { 
 Scanner input=new Scanner(System.in);
      System.out.println("欢迎来到宠物商店!");
      System.out.println("请输入宠物的名字!");

      String name=input.next();

       System.out.println("请输入宠物的健康值:(数字)");
 int health=input.nextInt();
      System.out.println("请输入宠物与主人的亲密度:(数字)");
 int love=input.nextInt();

      System.out.println("请选择您要领养的宠物类型:1、狗狗 2、企鹅");
      switch(input.nextInt())
  {case 1:
            System.out.println("请选择狗狗的品种:1、拉布拉多 2、雪纳瑞");
             String breed;
 
if(input.nextInt()==1)
breed="拉布拉多";
 else

breed="雪纳瑞";
//创建狗对象
Dog dog=new Dog(name,health,love,breed);
            dog.speak();
   Master master=new Master();
master.Cure(dog);
            dog.speak();
            master.play(dog);
dog.speak();
dog.eat();
            dog.speak();
break;
case 2:
   System.out.println("请选择企鹅的性别 1、Q仔 2、Q妹");
       String sex=null;
            if(input.nextInt()==1)
sex="Q仔";
else
sex="Q妹";
//创建企鹅对象
Penguin penguin=new Penguin(name,health,love,sex);
            penguin.speak();
Master master1=new Master();
master1.Cure(penguin);
penguin.speak();
penguin.eat();
            penguin.speak();
            master1.play(penguin);
            penguin.speak();
break;
     default:
System.out.println("不可行");
  }
}
}
 abstract class Pet
{
    private String name;
private int  health;
private int love;
public String getName(){return name;}
public int getHealth(){return health;}
public int getLove(){return love;}
public void setHealth(int health){this.health=health;}
public void setLove(int love){this.love=love;}
public  abstract void tohospital();//在子类中实现
    public abstract void eat();//在子类中实现
public void speak()
       {System.out.println("我的名字叫:"+getName()+"健康值是:"+getHealth()+
"我和主人的亲密度是:"+getLove());
   }
Pet(String name,int health,int love){
        this.name=name;
        this.health=health;
this.love=love;
}
}
class Dog extends Pet
{

    private String breed;
public String getBreed(){return breed;}
    public void eat()
{
System.out.println("吃骨头了!!主人我的健康值有增加了3!!!");
super.setHealth(getHealth() + 3);
}
public void tohospital()
 {
System.out.println("去医院看医生,要打针、吃药了。");
         setHealth(60);


      }
Dog(String name,int health,int love,String breed)
 { 
super(name,health,love);
    this.breed=breed;
 }
public void speak()
{
       System.out.println("我的名字叫:"+getName()+"健康值是:"+getHealth()+
"我和主人的亲密度是:"+getLove()+"我的品种是:" +getBreed());
}
public void catchflydisk()
{
   System.out.println("主人我接住飞盘了!!我与您的亲密度增加了5");
            super.setLove(getLove() + 5);
         }

}
class Penguin extends Pet
{


private String sex;
public String getSex(){return sex;}
    public void eat()
{
System.out.println("吃小鱼咯!!主人我的健康值增加了3");
        super.setHealth(getHealth() + 3);

}
    public void tohospital()
{
System.out.println("去医院看医生了,要吃药。疗养。");
setHealth(90);


}
Penguin(String name,int health,int love,String sex)
{
       super(name,health,love);

  this.sex=sex;

}

public void speak()
{
       System.out.println("我的名字叫:"+getName()+"健康值是:"+getHealth()+
"我和主人的亲密度是:"+getLove()+"我的性别是:"+ getSex());

}
public void swim()
{
  System.out.println("主人我和你一起游泳了!!我与您的亲密度增加了5");
        super.setLove(getLove() + 5);
     }


}
 class Master 
{
public void Cure(Pet pet)
{
if(pet.getHealth()<50)
pet.tohospital();
}
   public void Petfeed (Pet pet)
{
  pet.eat();
   }
   public void play(Pet pet)
   {
  if(pet instanceof Dog)
{
  Dog dog=(Dog)pet;
  dog.catchflydisk();
    }
else if(pet instanceof Penguin)
{
  Penguin penguin=(Penguin)pet;
  penguin.swim();
    }

   }

}