使用多态完成给宠物喂食
主程序类:
package com.bdqn;
public class PetTest {
public static void main(String[] args) {
Master master = new Master();
Pet dog = new Dog();
dog.setName("黑鼻");
dog.setHealth(88);
dog.setLove(78);
((Dog) dog).setStrain(1);
dog.print();
master.feed(dog);
System.out.println("**********************");
Pet penguin = new Penguin();
penguin.setName("QQ");
penguin.setHealth(100);
penguin.setLove(76);
((Penguin) penguin).setSex(1);
penguin.print();
master.feed(penguin);
}
}
主人类
package com.bdqn;
public class Master {
public void feed(Pet pet){
if(pet instanceof Dog){
Dog dog = (Dog)pet;
dog.eat();
}else if(pet instanceof Penguin){
Penguin penguin = (Penguin) pet;
penguin.eat();
}
}
}
pet类
package com.bdqn;
public abstract class Pet {
private String name;
private int health;
private int love;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setHealth(int health) {
if(health < 0 || health > 100){
health = 60;
}
this.health = health;
}
public int getHealth() {
return health;
}
public void setLove(int love) {
if(love < 0 || love > 100){
love = 60;
}
this.love = love;
}
public int getLove() {
return love;
}
public void print(){
System.out.println("宠物的自白:");
System.out.print("我的名字叫"+getName()+",健康值是"+getHealth()+",和主人的亲密度是"+getLove());
}
public abstract void eat();
}
dog类
package com.bdqn;
public class Dog extends Pet{
private String strain;
public String getStrain() {
return strain;
}
public void setStrain(int strain) {
if(strain == 1){
this.strain = "拉布拉多";
return;
}
this.strain = "博美";
}
public void print(){
super.print();
System.out.println(",我的种类是:"+this.getStrain());
}
public void eat() {
if(getHealth()==100){
System.out.println("狗狗已经饱了,不需要吃东西了。");
}else {
System.out.println("带狗狗去吃骨头......");
setHealth(getHealth() + 3);
System.out.println("狗狗的健康值为:"+getHealth());
}
}
}
penguin类
package com.bdqn;
public class Penguin extends Pet{
private String sex;
public String getSex() {
return sex;
}
public void setSex(int sex) {
if(sex == 1 ){
this.sex = "Q仔";
return;
}
this.sex = "Q妹";
}
public void print(){
super.print();
System.out.println(",我的性别是:"+this.getSex());
}
public void eat() {
if(getHealth()==100){
System.out.println("企鹅已经饱了,不需要吃东西了。");
}else {
System.out.println("带企鹅去吃骨头......");
setHealth(getHealth() + 5);
System.out.println("qie的健康值为:"+getHealth());
}
}
}
程序运行结果
