黑马程序员技术交流社区

标题: 接口继承问题? [打印本页]

作者: HM刘俊    时间: 2013-3-23 18:03
标题: 接口继承问题?
本帖最后由 HM刘俊 于 2013-3-23 18:53 编辑

interface A想继承interface B
但是又不想去实现其interface B中所有的方法,该怎么办??
作者: 魏福伟    时间: 2013-3-23 18:11
接口可以继承接口,不用实现,实现也没有意义,他还是个接口,子接口可以对父接口进行细化和扩充
作者: blackcaismine    时间: 2013-3-23 18:16
接口继承接口要实现方法吗?
作者: 魏福伟    时间: 2013-3-23 18:16
利用继承技术,可方便地为一个接口添加新的方法声明,也可以将几个接口合并成一个新接口。在这两种情
况下,最终得到的都是一个新接口
  1. //: HorrorShow.java
  2. // Extending an interface with inheritance

  3. interface Monster {
  4.   void menace();
  5. }

  6. interface DangerousMonster extends Monster {
  7.   void destroy();
  8. }

  9. interface Lethal {
  10.   void kill();
  11. }

  12. class DragonZilla implements DangerousMonster {
  13.   public void menace() {}
  14.   public void destroy() {}
  15. }

  16. interface Vampire  
  17.     extends DangerousMonster, Lethal {
  18.   void drinkBlood();
  19. }

  20. class HorrorShow {
  21.   static void u(Monster b) { b.menace(); }
  22.   static void v(DangerousMonster d) {
  23.     d.menace();
  24.     d.destroy();
  25.   }
  26.   public static void main(String[] args) {
  27.     DragonZilla if2 = new DragonZilla();
  28.     u(if2);
  29.     v(if2);
  30.   }
  31. } ///:~
复制代码
DangerousMonster是对Monster的一个简单的扩展,最终生成了一个新接口。这是在DragonZilla里实现
的。
Vampire的语法仅在继承接口时才可使用。通常,我们只能对单独一个类应用extends(扩展)关键字。但由
于接口可能由多个其他接口构成,所以在构建一个新接口时,extends可能引用多个基础接口。正如大家看
到的那样,接口的名字只是简单地使用逗号分隔。
作者: HM刘俊    时间: 2013-3-23 18:52
谢谢,开窍了。.
作者: 魏福伟    时间: 2013-3-23 19:58
blackcaismine 发表于 2013-3-23 18:16
接口继承接口要实现方法吗?

不用,他只是对父接口的扩充,依然是接口,方法依然是abstract的方法




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