像这样的代码:
protected Interface1 varClass1 = new Interface1() {
但我也希望这个匿名嵌套类可以继承类Base
,就像这样:
protected Interface1 varClass1 = new Interface1() extends Base {
....
在Java中是否有可能实现这个功能?
像这样的代码:
protected Interface1 varClass1 = new Interface1() {
但我也希望这个匿名嵌套类可以继承类Base
,就像这样:
protected Interface1 varClass1 = new Interface1() extends Base {
....
在Java中是否有可能实现这个功能?
匿名类可以实现一个接口或者继承一个类。
一种解决方法是创建一个实现Interface1
并扩展Base
的命名类,然后将其用作匿名类的基类:
public abstract class Base1 extends Base implements Interface1 {}
...
protected Interface1 varClass1 = new Base1() {
...
Base1
的作用域,您甚至可以在方法内部声明它,在使用之前声明即可。 - aioobeclass Hello {}
。 - Guillaume PoletBase
的实例,并从您从Interface1
实现的方法中使用其方法即可。注意此处假设您仅因其实现而不是其接口而要继承Base
,这是一个有效的假设,因为将对象分配给Interface1
变量后,Base
的接口是不可见的。因此,在这里最好使用委托而不是创建一个新类。