在匿名类中实现两个接口

2024-06-09

我有两个接口:

interface A {
    void foo();
}

interface B {
    void bar();
}

我可以创建实现这些接口之一的类的匿名实例,如下所示:

new A() {
    void foo() {}
}

or:

new B() {
    void bar() {}
}

我想创建一个实现这两个接口的匿名类。类似于(虚构的):

new A implements B {
    void foo() {}
    void bar() {}
}

这显然会产生编译错误:“B 无法解析为类型”。

解决方法非常简单:

class Aggregate implements A, B {
    void foo() {}
    void bar() {}
}

然后我用Aggregate我会在哪里使用匿名类。

我想知道匿名类实现两个接口是否合法。


“匿名内部类可以扩展一个子类或实现一个子类 界面。与非匿名类(内部类或其他类)不同,匿名类 内部类不能同时做到这两点。换句话说,它不能既扩展类又 实现一个接口,也不能实现多个接口。 ”(http://scjp.wikidot.com/nested-classes http://scjp.wikidot.com/nested-classes)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在匿名类中实现两个接口 的相关文章

随机推荐