Por que não estender de Enum <E estende Enum <E >>

Eu tropecei no seguinte problema que não posso estender e implementar a partir dessa classe que é definida no Java 1.5 (pacote java.lang)

<code>public abstract class Enum<E extends Enum<E>> {...
}..
</code>

O problema que tenho é criar meu próprio tipo de enum que tem diferentes valores ordinais. Eu não quero implementá-lo usando o nome diferente do ordinal como getCode () etc. Então eu pensei que eu poderia ir o caminho para estender a classe acima.

<code>public final class XYZ extends Enum<XYZ> { //Does not work.
  //
  A("A", 1),
  B("B", 7);
  .
}
</code>

Eu sei que posso fazer o seguinte:

<code>public enum NEWEnum {
   A(1),
   B(7);

   private int code;
   private NEWEnum(int code) {
     this.code = code;
   }
   public int getCode() {
     return this.code;
   }
}
</code>

Eu preferiria ter os nomes habituais no Enum como ordinal () e name ().

questionAnswers(5)

yourAnswerToTheQuestion