¿Por qué una clase no puede extender una enumeración?
Me pregunto por qué en el lenguaje Java unaclass
no puede extender unenum
.
No estoy hablando de unenum
extendiendo unenum
(lo que no se puede hacer, ya que Java no tiene herencia múltiple, y esoenum
s implícitamente extenderjava.lang.Enum
), pero una clase queextends
unenum
para agregar solo métodos adicionales, no valores de enumeración adicionales.
Algo como:
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;
}
}
Para ser utilizado de esta manera:
System.out.println(MyClass.ASD.anotherMethod());
Entonces, ¿alguien puede proporcionar una justificación (o señalarme a la sección JLS correcta) para esta limitación?