A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/*动物类:姓名,年龄,吃饭,睡觉。
        * 猫和狗
        * 动物培训接口:跳高p
*/
class AnimalTest1 {
        public static void main(String[] args) {
                Cat c = new Cat("萌萌",4);
                System.out.println("名字:" + c.getName() + ",年龄:" + c.getAge());
                c.eat();
                c.sleep();
                c.catchMouse();
                System.out.println("......................");
               
                JumpCat jc = new JumpCat("小小",2);
                System.out.println("名字:" + jc.getName() + ",年龄:" + jc.getAge());
                jc.eat();
                jc.sleep();
                jc.catchMouse();
                jc.jump();
                System.out.println("......................");

                JumpDog jd = new JumpDog("嘟嘟",3);
                System.out.println("名字:" + jd.getName() + ",年龄:" + jd.getAge());
                jd.eat();
                jd.sleep();
                jd.lookHome();
                jd.jump();
                System.out.println("......................");

                method(new Cat("小萌",4));
                System.out.println("......................");
                method(new Dog());
        }

        public static void method(Animal a) {
                if(a instanceof Cat) {
                        Cat cc = (Cat)a;
                        cc.eat();
                        cc.sleep();
                        cc.catchMouse();
                        System.out.println("名字:" + cc.getName() + ",年龄:" + cc.getAge());
                }else if(a instanceof JumpDog) {
                        JumpDog jd1 = (JumpDog)a;
                        jd1.eat();
                        jd1.sleep();
                        jd1.lookHome();
                        System.out.println("名字:" + jd1.getName() + ",年龄:" + jd1.getAge());
                }else {
                        a.eat();
                        a.sleep();
                }
        }
}


abstract class Animal {
        private String name;
        private int age;

        public Animal() {}

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

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

        public String getName() {
                return name;
        }

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

        public int getAge() {
                return age;
        }

        public abstract void eat();
        public abstract void sleep();
}

class Cat extends Animal {
        public Cat() {}

        public Cat(String name, int age) {
                super(name,age);
        }

        public void eat(){
                System.out.println("猫爱吃鱼");
        }
        public void sleep() {
                System.out.println("圏着睡");
        }
        public void catchMouse() {
                System.out.println("猫的本领是抓老鼠");
        }
}

class Dog extends Animal {
        public Dog() {}

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

        public void eat() {
                System.out.println("狗爱吃肉");
        }

        public void sleep() {
                System.out.println("趴着睡");
        }
        public void lookHome() {
                System.out.println("狗的本领是看家");
        }
}

interface Jumping {
        public void jump();
}

class JumpCat extends Cat implements Jumping {
       
        public JumpCat() {}

        public JumpCat(String name, int age) {
                super(name,age);
        }

        public void jump() {
                System.out.println("也爱跳高");
        }
}

class JumpDog extends Dog implements Jumping {
        public JumpDog() {}

        public JumpDog(String name,int age) {
                super(name,age);
        }

        public void jump() {
                System.out.println("更爱跳高");
        }
}
您需要登录后才可以回帖 登录 | 加入黑马