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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© taitoukankan 中级黑马   /  2015-11-30 23:12  /  912 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class TestAnimal {
        public static void main(String[] args) {
                Cat c1 = new JumpCat("跳高猫",3);
                eat(c1);
                JumpCat c2 = (JumpCat)c1;
                eat(c2);
                c2.jump();

                Dog d1 = new JumpDog("跳高狗",5);
                eat(d1);
                JumpDog d2 = (JumpDog)d1;
                eat(d2);
                d2.jump();

                /*JumpCat jc = new JumpCat("跳高猫",3);
                eat(jc);
                jc.jump();
                JumpDog jd = new JumpDog("跳高狗",5);
                eat(jd);
                jd.jump();*/
        }

        public static void eat(Animal a) {
                a.eat();
        }
}

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();
}

interface Jump {
        public void jump();
}

class Cat extends Animal {
        public Cat() {}

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

        public void eat() {
                System.out.println("猫吃鱼");
        }
}

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

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

        public void jump() {
                System.out.println("能跳很高的猫");
        }
}

class Dog extends Animal {
        public Dog() {}

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

        public void eat() {
                System.out.println("狗吃骨头");
        }
}

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

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

        public void jump() {
                System.out.println("能跳很高的狗");
        }
}

评分

参与人数 1黑马币 +3 收起 理由
张研老师 + 3 很给力!

查看全部评分

1 个回复

倒序浏览
写的很好 很清晰  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马