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