JavaSE基础知识(十九)--Java接口之通过继承来扩展接口

本文探讨了Java SE中的接口继承概念,指出一个接口可以extends另一个接口,从而创建新的接口。通过接口继承,可以方便地添加方法声明或组合多个接口。示例中展示了如何创建并实现继承接口的示例。
摘要由CSDN通过智能技术生成

Java SE 是什么,包括哪些内容(十九)?

本文内容参考自Java8标准
再次感谢Java编程思想对本文的启发!
接口与接口之间也是可以相互继承的,就是一个接口可以extends另一个接口。
通过继承,可以很容易地在接口中添加新的方法声明,还可以通过继承在新接口中组合数个接口,这两种情况都可以获得新的接口:
代码示例:

// 接口间的继承
   //接口Monster
   interface Monster{
      //方法menace()
      void menace();
   }
   //接口DangerousMonster继承了接口Monster
   interface DangerousMonster extends Monster{
      //除了自动获得方法menace()之外,还新增了方法destroy()
      void destroy();
   }
   //接口Lethal
   interface Lethal{
      //方法kill()
      void kill();
   }
   //类DragonZilla实现了接口DangerousMonster
   class DragonZilla implements DangerousMonster{
      //分别给实现了接口中的方法menace()和方法destroy()
      public void menace() {};
      public void destroy() {};
   }
   //接口Vampire继承了接口DangerousMonster和接口Lethal
   interface Vampire extends DangerousMonster,Lethal{
      //除了自动获得方法menace(),方法destroy(),方法kill()外,还新增了方法
      //drinkBlood()
      void drinkBlood();
   }
   //类VeryBadVampire实现了接口Vampire
   class VeryBadVampire implements Vampire{
      //实现了接口Vampire中的所有方法
      public void menace() {};
      public void destroy() {};
      public void kill() {};
      public void drinkBlood() {};
   }
   //类HorrorShow
   public class HorrorShow{
      //方法u(Monster b),带一个Monster类型的形式参数b
      static void u(Monster b){ 
         //调用方法menace()
         b.menace();
      }
      //方法v(DangerousMonster d),带一个DangerousMonster类型的形式参数d
      static void v(DangerousMonster d){
         //调用方法menace()
         d.menace();
         //调用方法destroy()
         d.destroy();
      }
      //方法w(Lethal l),带一个Lethal类型的形式参数l
      static void w(Lethal l){
         //调用方法kill()
         l.kill();
      }
      //程序执行入口main方法
      public static void main(String[] args){
         //创建类DragonZilla的对象实例,赋值给了父类DangerousMonster
         //的引用barney
         DangerousMonster barney = new DragonZilla();
         //调用方法u(Monster b),将类DragonZilla向上转型为了类Monster
         u(barney);
         //调用方法v(DangerousMonster d),将类DragonZilla
         //向上转型为了类DangerousMonster
         v(barney);
         //创建类VeryBadVampire的对象实例,赋值给父类Vampire的引用vlad
         Vampire vlad = new VeryBadVampire();
         //调用方法u(Monster b),将类VeryBadVampire向上转型为了类Monster
         u(vlad);
         //调用方法v(DangerousMonster d),将类VeryBadVampire
         //向上转型为了类DangerousMonster
         v(vlad);
         //调用方法w(Lethal l),将类VeryBadVampire
         //向上转型为了类Lethal
         w(vlad);
      }
   }

接口DangrousMonster是接口Monster的直接扩展,它产生了一个新接口。类DragonZilla中实现了这个接口。
在接口Vampire中使用的语法仅适用于接口继承,一般情况下,只可以将关键字extends用于单一类,但是可以实现多个父类接口,只需要在声明中将接口用","一一分开即可。
PS:时间有限,有关Java SE的内容会持续更新!今天就先写这么多,如果有疑问或者有兴趣,可以加QQ:2649160693,并注明CSDN,我会就博文中有疑义的问题做出解答。同时希望博文中不正确的地方各位加以指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值