【发布时间】:2014-02-02 20:20:39
【问题描述】:
假设我有以下两个类/接口定义:
public abstract class FooClass {
public abstract void doFoo();
}
和
public interface BarInterface {
public void doBar();
}
如果我想创建一个扩展/实现两者的匿名内部类,我需要这样做吗:
public abstract class BothClass extends FooClass implements BarInterface {}
...
new BothClass() {
public void doFoo() {
System.out.println("Fooooooooo!!!!");
}
public void doBar() {
System.out.println("Baaaaaaaar!!!!");
}
}.doBar();
或者有什么捷径可以让我不定义BothClass?可能是这样的:
new (FooClass implements BarInterface)() {
public void doFoo() {
System.out.println("Fooooooooo!!!!");
}
public void doBar() {
System.out.println("Baaaaaaaar!!!!");
}
}.doBar();
(这个想法给了我几个错误,这里没有一个有用)
【问题讨论】:
-
让
FooClass实现BarInterface?我不确定你的意思。 -
@JoshM:假设我不能/不想让
FooClass实现BarInterface。 -
没有捷径。
-
@MarkusA。匿名类是现有类定义的实现。如果你想要两者,你需要一个在你的第一个例子中定义的类。
标签: java subclassing anonymous-inner-class interface-implementation