我想知道为什么在Java语言中,一个class
不能扩展一个enum
。
我不是在讨论一个enum
扩展另一个enum
的情况(这是不可能的,因为Java没有多重继承,并且enum
隐式地扩展了java.lang.Enum
),而是一个class
扩展一个enum
以添加额外的方法,而不是额外的枚举值。
类似于:
enum MyEnum
{
ASD(5),
QWE(3),
ZXC(7);
private int number;
private asd(int number)
{
this.number=number;
}
public int myMethod()
{
return this.number;
}
}
class MyClass extends MyEnum
{
public int anotherMethod()
{
return this.myMethod()+1;
}
}
要这样使用:
System.out.println(MyClass.ASD.anotherMethod());
那么,有人能够为这个限制提供合理的解释(或者指导我去正确的JLS章节)吗?
MyEnum
参数呢? - Louis Wasserman