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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码


9 个回复

倒序浏览
为什么要特意定义一个jumpCat类啊??上面Cat类extends Animal implements Jumping不就可以了吗?
回复 使用道具 举报
因为这样子代码的扩展性可以增高.实际上不是所有Cat都具备jump功能,因此通过子类来实现jump接口,而不是直接在Cat类中实现.
回复 使用道具 举报 1 0
这是给cat扩展了一个新的行为
回复 使用道具 举报
为了演示继承啊,而且不是每个CAT都是JUMPCAT,而JUMPCAT都是CAT.再看看继承那块知识.
回复 使用道具 举报
感觉好纠结的样子!
回复 使用道具 举报
无语了   两个对象     一个是普通小猫  一个是跳跳虎  可行     只要知道字是一个对象就好了   分什么黑猫白猫
回复 使用道具 举报
他的好 发表于 2016-7-7 20:07
这是给cat扩展了一个新的行为

噢.O(∩_∩)O谢谢
回复 使用道具 举报
gjtdxjd 发表于 2016-7-7 22:16
为了演示继承啊,而且不是每个CAT都是JUMPCAT,而JUMPCAT都是CAT.再看看继承那块知识. ...

是的老板.我错了{:2_36:}
回复 使用道具 举报
a327201899 发表于 2016-7-7 22:27
感觉好纠结的样子!

{:2_33:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马