通过继承扩展接口2007-05-28 yycnet.yeah.net yyc译利用继承技术,可方便地为一个接口添加新的方法声明,也可以将几个接口合并成一个新接口。在这两种情况下,最终得到的都是一个新接口,如下例所示:
//: HorrorShow.java// Extending an interface with inheritanceinterface Monster {void menace();}interface DangerousMonster extends Monster {void destroy();}interface Lethal {void kill();}class DragonZilla implements DangerousMonster {public void menace() {}public void destroy() {}}interface Vampire extends DangerousMonster, Lethal {void drinkBlood();}class HorrorShow {static void u(Monster b) { b.menace(); }static void v(DangerousMonster d) {d.menace();d.destroy();}public static void main(String[] args) {DragonZilla if2 = new DragonZilla();u(if2);v(if2);}} ///:~
DangerousMonster是对Monster的一个简单的扩展,最终生成了一个新接口。这是在DragonZilla里实现的。
Vampire的语法仅在继承接口时才可使用。通常,我们只能对单独一个类应用extends(扩展)关键字。但由于接口可能由多个其他接口构成,所以在构建一个新接口时,extends可能引用多个基础接口。正如大家看到的那样,接口的名字只是简单地使用逗号分隔。