利用继承技术,可方便地为一个接口添加新的方法声明,也可以将几个接口合并成一个新接口。在这两种情况下,最终得到的都是一个新接口,如下例所示:
//: horrorshow.java
// extending an interface with inheritance
interface 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可能引用多个基础接口。正如大家看到的那样,接口的名字只是简单地使用逗号分隔。
闽公网安备 35060202000074号