我有两个接口:
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(使用前将#替换为@)