【发布时间】:2014-07-25 14:48:59
【问题描述】:
所以我遇到了一些非常有用的有趣的东西。在enum 中,您可以定义一个abstract 方法,每个enum 值都被强制提供一个实现。例如:
public enum Test {
RAWR ("Burninating the country side") {
@Override
public int doStuff() {
return 0;
}
};
private final String enumStuff;
private Test(String enumStuff) {
this.enumStuff = enumStuff;
}
public abstract int doStuff();
}
我添加了私有变量,以便您了解它与标准 private 构造函数的关系。
所以这让我想知道:实际上,RAWR 与 Test 类的关系是什么?通常,这种语法会让我觉得我在定义一个匿名内部类,但这在这里看起来并不直观,因为RAWR 绝不是匿名的。
我能想到的最接近的事情是enum 的值实际上是enum 本身的扩展,例如,
public class RAWR extends Test {
@Override
public int doStuff() {
return 0;
}
}
那么,有谁知道真正是怎么回事?
【问题讨论】: