运用instanceof判断Animal a是否为Dog类和是否为cat类

发布于:2025-04-13 ⋅ 阅读:(26) ⋅ 点赞:(0)

//Animal类(狗和猫的父类)

public  class Animal {
    private String color;
    private int age;

    public Animal(String color, int age) {
        this.color = color;
        this.age = age;

    }

    public Animal() {
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    public void eat(String something)
    {
        System.out.println("动物在吃"+something);
    }
}
//cat类
public class cat extends Animal{

    public cat(String color, int age) {
        super(color, age);
    }

    public cat() {
    }

    @Override
    public void eat(String something){
        System.out.println(getAge()+"岁的"+getColor()+"颜色的猫眯着眼侧头吃"+something);
    }
    public void catchMouse(){
        System.out.println("猫在逮老鼠");
    }
}
//Dog类


class Dog extends Animal{

    public Dog(String color, int age) {
        super(color, age);
    }

    public Dog() {
    }

    public void lookHome(){

        System.out.println("狗在看家");
    }
    @Override
    public void eat(String something){
        System.out.println(getAge()+"岁的"+getColor()+"颜色的狗两只前腿死死抱住"+something+"猛吃");
    }
}

//人类

public class Person1 {
        private String name;
        private int age;

        public Person1() {
        }

        public Person1(String color, int age) {
                this.name = color;
                this.age = age;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }


        public void setAge(int age) {
                this.age = age;
        }

        public void keepPet(Animal a, String something) {
                if (a instanceof Dog) {
                        Dog d = (Dog) a;
                        System.out.println("年龄为" + age + "的" + name + "养了一只" + d.getColor() + "颜色的狗");
                        d.eat(something);
                }
                else if(a instanceof cat c)
                {
                        System.out.println("年龄为" + age + "的" + name + "养了一只" + c.getColor() + "颜色的猫");
                        c.eat(something);
                }
        }

}

//测试类

public class test1 {
    public static void main(String[] args) {
        Person1 p=new Person1();
        cat c=new cat();
        Dog d=new Dog();
        p.setAge(25);
        p.setName("张三");
        Person1 p1=new Person1();
        p1.setName("老李");
        p1.setAge(34);
        c.setAge(3);
        c.setColor("白色");
        d.setColor("黑色");
        d.setAge(2);
p.keepPet(d,"骨头");
p1.keepPet(c,"鱼");

    }

}