Dlaczego klasa nie może rozszerzyć enum?
Zastanawiam się, dlaczego w języku Java aclass
nie może przedłużyćenum
.
Nie mówię oenum
przedłużenieenum
(czego nie można zrobić, ponieważ Java nie ma wielokrotnego dziedziczenia i toenum
s implicitjava.lang.Enum
), ale klasa, któraextends
naenum
aby dodawać tylko dodatkowe metody, a nie dodatkowe wartości wyliczeniowe.
Coś jak:
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;
}
}
Do użycia w ten sposób:
System.out.println(MyClass.ASD.anotherMethod());
Czy więc ktoś może podać uzasadnienie (lub wskazać mi właściwą sekcję JLS) na to ograniczenie?