JAVA基础重温笔记|Java之通过继承来扩展接口

示例源码
通过继承,可以很容易地在接口中添加新的方法声明,还可以通过继承在新接口中组合数个接口。这两种情况都可以获得新的接口,就像在下例中看到的:

package com.mufeng.theninthchapter; interface Monster {// 怪物 void menace(); // 威胁 }interface DangerousMonster extends Monster { void destroy(); // 破坏 }interface Lethal {// 致命的 void kill(); // 杀死 }class DragonZilla implements DangerousMonster { @Override public void menace() { // TODO Auto-generated method stub } @Override public void destroy() { // TODO Auto-generated method stub } }interface Vampire extends DangerousMonster, Lethal {// 吸血鬼 void drinkBlood(); }class VeryBadVampire implements Vampire { @Override public void menace() { // TODO Auto-generated method stub } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void kill() { // TODO Auto-generated method stub } @Override public void drinkBlood() { // TODO Auto-generated method stub }}public class HorrorShow { static void u(Monster b) { b.menace(); } static void v(DangerousMonster d) { d.menace(); d.destroy(); } static void w(Lethal l) { l.kill(); } static void x(Vampire v) { v.menace(); v.destroy(); v.kill(); v.drinkBlood(); } public static void main(String[] args) { DangerousMonster barney = new DragonZilla(); u(barney); v(barney); Vampire vlad = new VeryBadVampire(); u(vlad); v(vlad); w(vlad); x(vlad); }}


源码解析
DangerousMonster是 Monster的直接扩展,它产生了一个新接口。 DragonZilla中实现了这个接口。
在 Vampire中使用的语法仅适用于接口继承。一般情况下,只可以将 extends用于单一类,但是可以引用多个基类接口。就像所看到的,只需用逗号将接口名一一分隔开即可。

    推荐阅读