java 请自定义父类(成员变量,方法等),2个子类,2个方法重写。通过父类、子类练习向上转型、向下转型。

请自定义父类(成员变量,方法等),2个子类,2个方法重写。通过父类、子类练习向上转型、向下转型。


/*
宠物类
*/
package com.qf.day08;
public class Pet{
    private int id; //id 宠物编号
    private String name;// 宠物昵称
    private int health;// 健康值
    private int love;// 亲密度

    public void setId(int id){
        this.id=id;
    }
    public int getId(){
        return id;
    }
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    public void setHealth(int health){
        this.health=health;
    }
    public int getHealth(){
        return health;
    }
    public void setLove(int love){
        this.love=love;
    }   
    public int getLove(){
        return love;
    }

    //方法
    public void print(){
        System.out.println("宠物id:"+this.id+",宠物昵称:"+this.name+",健康值:"+health+",亲密度:"+love);
    }
}

/*
dog类继承Pet类
*/
package com.qf.day08;
public class Dog extends Pet{
    private String strain;
    public void setStrain(String strain){
        this.strain=strain;
    }
    public String getStrain(){
        return strain;
    }

    public void print(){
        int id=getId();
        String name=getName();
        int health=getHealth();
        int love=getLove();
        System.out.println("狗狗id:"+id+" 昵称:"+name+" 健康值:"+health+" 亲密度:"+love+" 品种:"+strain);
    }

    public void eat(){
        String name=getName();
        System.out.println(name+"大口吃狗粮....");
        //增加健康值
        int health=getHealth();
        setHealth(health+3);
    }
}


/*
猫类
*/
package com.qf.day08;
public class Cat extends Pet{
    private String hobby;
    public void setHobby(String hobby){
        this.hobby=hobby;
    }
    public String getHobby(){
        return hobby;
    }

    public void print(){
        int id=getId();
        String name=getName();
        int health=getHealth();
        int love=getLove();
        System.out.println("猫咪id:"+id+" 昵称:"+name+" 健康值:"+health+" 亲密度:"+love+" 爱好:"+hobby);
    }

    public void eat(){
        String name=getName();
        System.out.println(name+"大口吃小鱼....");
        //增加健康值
        int health=getHealth();
        setHealth(health+5);
    }
}

/*
主人
*/
package com.qf.day08;
public class Master{
    private String name;    
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    //喂食
    public void feed(Dog d){
        System.out.println(name+"要给狗狗喂食物...");
        d.eat();
        d.print();
    }
    public void feed(Cat c){
        System.out.println(name+"要给猫咪喂食物...");
        c.eat();
        c.print();
    }
}



package com.qf.day08;
public class TestPet{
    public static void main(String[] args){
        Dog afu=new Dog();
        afu.setId(120);
        afu.setName("阿福");
        afu.setHealth(85);
        afu.setLove(90);
        afu.setStrain("拉布拉多");
        afu.print();

        Cat amao=new Cat();
        amao.setId(119);
        amao.setName("阿猫");
        amao.setHealth(90);
        amao.setLove(70);
        amao.setHobby("爬树");
        amao.print();

        Master yuhuan=new Master();
        yuhuan.setName("玉环");
        yuhuan.feed(afu);
        yuhuan.feed(amao);
    }