¿Por qué no extenderse desde Enum <E extiende Enum <E>>

Me tropecé con el siguiente problema que no puedo extender e implementar desde esta clase que se define en Java 1.5 (paquete java.lang)

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

El problema que tengo es crear mi propio tipo de enumeración que tiene diferentes valores ordinales. No quiero implementarlo usando un nombre diferente de ordinal como getCode (), etc. Así que pensé que podría ir por el camino para extender la clase anterior.

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

Sé que puedo hacer lo siguiente:

<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>

Preferiría tener los nombres habituales en Enum como ordinal () y name () en su lugar.

Respuestas a la pregunta(5)

Su respuesta a la pregunta