黑马程序员技术交流社区

标题: 面向对象 抽象类+接口练习 [打印本页]

作者: 石少星@    时间: 2015-9-1 22:00
标题: 面向对象 抽象类+接口练习
class Demo_Animal {
        public static void main(String[] args) {
                Cat c = new Cat("小花",2);                                //创建对象小花猫
                System.out.println("它叫"+c.getName()+",它"+c.getAge()+"岁了");
                c.eat();
                c.catchMouse();
                Dog d = new Dog("阿黄",3);                                //创建对象阿黄狗
                System.out.println("它叫"+d.getName()+",它"+d.getAge()+"岁了");
                d.eat();
                d.lookHome();

                System.out.println("-------------------------");
                JumpCat jc = new JumpCat("跳高猫",4);        //创建跳高猫对象
                System.out.println("它叫"+jc.getName()+",它"+jc.getAge()+"岁了");
                jc.eat();
                jc.catchMouse();
                jc.jump();
                JumpDog jd = new JumpDog("跳高狗",5);        //创建跳高狗对象
                System.out.println("它叫"+jd.getName()+",它"+jd.getAge()+"岁了");
                jd.eat();
                jd.lookHome();
                jd.jump();
        }
}
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 Jumping {                                                                //跳高接口
        public void jump();
}
class Cat extends Animal {                                                //猫类继承动物类
        public Cat() {}                                                                //空参构造
       
        public Cat(String name,int age) {                        //带参构造
                super(name,age);
        }

        public void eat() {                                                        //重写成员方法
                System.out.println(this.getName()+"吃猫粮");
        }

        public void catchMouse() {                                        //成员方法
                System.out.println(this.getName()+"抓老鼠");
        }
}

class JumpCat extends Cat implements Jumping {        //继承猫类并实现接口
        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(this.getName()+"吃狗粮");
        }

        public void lookHome() {                                        //成员方法
                System.out.println(this.getName()+"看门");
        }
}

class JumpDog extends Dog implements Jumping {        //继承狗类并实现接口
        public JumpDog() {}                                                        //空参构造

        public JumpDog(String name,int age) {                //带参构造
                super(name,age);
        }
        public void jump() {                                                //跳高方法
                System.out.println("它会跳高");
        }
}
运行结果:如图

QQ图片20150901220003.png (10.52 KB, 下载次数: 2)

运行结果

运行结果





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2