企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## [使用继承扩展接口](https://lingcoder.gitee.io/onjava8/#/book/10-Interfaces?id=%e4%bd%bf%e7%94%a8%e7%bb%a7%e6%89%bf%e6%89%a9%e5%b1%95%e6%8e%a5%e5%8f%a3) 通过继承,可以很容易在接口中增加方法声明,还可以在新接口中结合多个接口。这两种情况都可以得到新接口,如下例所示: ~~~ // interfaces/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 { @Override public void menace() {} @Override public void destroy() {} } interface Vampire extends DangerousMonster, Lethal { void drinkBlood(); } class VeryBadVampire implements Vampire { @Override public void menace() {} @Override public void destroy() {} @Override public void kill() {} @Override public void drinkBlood() {} } 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(); } public static void main(String[] args) { DangerousMonster barney = new DragonZilla(); u(barney); v(barney); Vampire vlad = new VeryBadVampire(); u(vlad); v(vlad); w(vlad); } } ~~~ 接口**DangerousMonster**是**Monster**简单扩展的一个新接口,类**DragonZilla**实现了这个接口。 **Vampire**中使用的语法仅适用于接口继承。通常来说,**extends**只能用于单一类,但是在构建接口时可以引用多个基类接口。注意到,接口名之间用逗号分隔。