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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class Test_Animal {
  2.         public static void main(String[] args) {
  3.                 Cat c = new Cat("加菲",3);
  4.                 c.eat();
  5.                 c.sleep();
  6.                 System.out.println("---------------------------");
  7.                 JumpCat jc = new JumpCat("玛莎",4);
  8.                 jc.eat();
  9.                 jc.sleep();
  10.                 jc.jump();
  11.                 System.out.println("---------------------------");
  12.                 Dog d = new Dog("哈巴",6);
  13.                 d.eat();
  14.                 d.sleep();
  15.                 System.out.println("---------------------------");
  16.                 JumpDog jd = new JumpDog("藏獒",5);
  17.                 jd.eat();
  18.                 jd.sleep();
  19.                 jd.jump();
  20.                 System.out.println("---------------------------");
  21.         }
  22. }
  23. /*
  24. * A:案例演示
  25.         * 动物类:姓名,年龄,吃饭,睡觉。
  26.         * 猫和狗
  27.         * 动物培训接口:跳高
  28. */
  29. abstract class Animal {
  30.         private String name;                                //属性name
  31.         private int age;                                        //属性age

  32.         public Animal() {}                                        //空参构造

  33.         public Animal(String name,int age) {//有参构造
  34.                 this.name = name;
  35.                 this.age = age;
  36.         }

  37.         public void setName(String name) {        //设置姓名
  38.                 this.name = name;
  39.         }

  40.         public String getName() {                        //获取姓名
  41.                 return name;
  42.         }

  43.         public void setAge(int age) {                //设置年龄
  44.                 this.age = age;
  45.         }

  46.         public int getAge() {                                //获取年龄
  47.                 return age;
  48.         }

  49.         public abstract void eat();                        //抽象方法eat
  50.         public abstract void sleep();                //抽象方法sleep
  51. }

  52. interface Jumping {                                                //动物调高接口
  53.         public abstract void jump();
  54. }

  55. class Cat extends Animal {
  56.         public Cat() {}                                                //空参构造

  57.         public Cat(String name,int age) {        //有参构造
  58.                 super(name,age);
  59.         }

  60.         public void eat(){                                        //重写eat方法
  61.                 System.out.println("我是" + this.getName() + ",我吃鱼,今年" + this.getAge() + "岁!");
  62.         }

  63.         public void sleep() {                                //重写父类sleep方法
  64.                 System.out.println("我的白天晚上都睡!");
  65.         }
  66. }

  67. class JumpCat extends Cat implements Jumping {
  68.         public JumpCat() {}                                        //空参构造

  69.         public JumpCat(String name,int age) {//有参构造
  70.                 super(name,age);
  71.         }

  72.         public void jump() {                                //重写接口中jump方法
  73.                 System.out.println("我会调高");
  74.         }
  75. }

  76. class Dog extends Animal {
  77.         public Dog() {}                                                //空参构造

  78.         public Dog(String name,int age) {        //有参构造
  79.                 super(name,age);
  80.         }

  81.         public void eat() {                                        //重写父类方法eat
  82.                 System.out.println("我是" + this.getName() + ",我吃肉,今年" + this.getAge() + "岁!");
  83.         }

  84.         public void sleep() {                                //重写父类方法sleep
  85.                 System.out.println("我白天睡觉,晚上看门!");
  86.         }
  87. }

  88. class JumpDog extends Dog implements Jumping {
  89.         public JumpDog() {}                                        //空参构造

  90.         public JumpDog(String name,int age) {//有参构造
  91.                 super(name,age);
  92.         }

  93.         public void jump() {                                //重写接口jump方法
  94.                 System.out.println("我是马戏团的狗,会跳高!");
  95.         }
  96. }
复制代码


个人见解:类和接口以及继承的目的最终是为了简化代码,但是有好多弊端,那么什么时候该使用什么呢?不知各位有何高见!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马