黑马程序员技术交流社区

标题: 接口的test题.为什么 [打印本页]

作者: 新人—小明同学    时间: 2016-7-7 16:26
标题: 接口的test题.为什么
  1. class Test_Interface {
  2.         public static void main(String[] args) {
  3.                 Cat c = new Cat("黑猫",2);
  4.                 c.eat();
  5.                 c.sleep();
  6.                 c.jump();
  7.                
  8.                 JumpCat j = new JumpCat("跳高猫",5);
  9.                 j.eat();
  10.                 j.sleep();
  11.                 j.jump();
  12.                
  13.         }
  14. }
  15. /*
  16. A:案例演示
  17. 动物类:姓名,年龄,吃饭,睡觉。
  18.   猫
  19. 动物培训接口:跳高
  20. */

  21. abstract class Animal {
  22.         private String name;
  23.         private int age;

  24.         public Animal() {}
  25.         public Animal(String name,int age) {
  26.                 this.name = name;
  27.                 this.age = age;
  28.         }

  29.         public void setName(String name) {
  30.                 this.name = name;
  31.         }
  32.         public String getName() {
  33.                 return name;
  34.         }

  35.         public void setAge(int age) {
  36.                 this.age = age;
  37.         }
  38.         public int getAge() {
  39.                 return age;
  40.         }

  41.         public abstract void eat();
  42.         public abstract void sleep();
  43. }

  44. class Cat extends Animal {
  45.         public Cat() {}
  46.         public Cat(String name,int age) {
  47.                 super(name,age);
  48.         }

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

  52.         public void sleep() {
  53.                 System.out.println("猫侧着睡");
  54.         }

  55.         public void jump() {
  56.                 System.out.println("猫跳高");
  57.         }
  58. }

  59. interface Jumping {
  60.         public abstract void jump();
  61. }

  62. class JumpCat extends Cat implements Jumping {
  63. //为什么要特意定义一个jumpCat类啊??上面Cat类extends Animal implements Jumping不就可以了吗?
  64.         public JumpCat() {}
  65.         public JumpCat(String name,int age) {
  66.                 super(name,age);
  67.         }

  68.         public void jump() {
  69.                 System.out.println("猫跳高");
  70.         }
  71. }
复制代码



作者: 新人—小明同学    时间: 2016-7-7 16:27
为什么要特意定义一个jumpCat类啊??上面Cat类extends Animal implements Jumping不就可以了吗?
作者: hlhdidi    时间: 2016-7-7 18:38
因为这样子代码的扩展性可以增高.实际上不是所有Cat都具备jump功能,因此通过子类来实现jump接口,而不是直接在Cat类中实现.
作者: 他的好    时间: 2016-7-7 20:07
这是给cat扩展了一个新的行为
作者: gjtdxjd    时间: 2016-7-7 22:16
为了演示继承啊,而且不是每个CAT都是JUMPCAT,而JUMPCAT都是CAT.再看看继承那块知识.
作者: a327201899    时间: 2016-7-7 22:27
感觉好纠结的样子!
作者: xfbyxq    时间: 2016-7-7 22:41
无语了   两个对象     一个是普通小猫  一个是跳跳虎  可行     只要知道字是一个对象就好了   分什么黑猫白猫
作者: 新人—小明同学    时间: 2016-7-7 22:45
他的好 发表于 2016-7-7 20:07
这是给cat扩展了一个新的行为

噢.O(∩_∩)O谢谢
作者: 新人—小明同学    时间: 2016-7-7 22:46
gjtdxjd 发表于 2016-7-7 22:16
为了演示继承啊,而且不是每个CAT都是JUMPCAT,而JUMPCAT都是CAT.再看看继承那块知识. ...

是的老板.我错了{:2_36:}
作者: 新人—小明同学    时间: 2016-7-7 22:48
a327201899 发表于 2016-7-7 22:27
感觉好纠结的样子!

{:2_33:}




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