Duplicar posible:
add values to enumJava herencia enumeración
Por qué enumeraciones en Java no se puede heredar de otras enumeraciones? ¿Por qué se implementa esto de esta manera?
Duplicar posible:
add values to enumJava herencia enumeración
Por qué enumeraciones en Java no se puede heredar de otras enumeraciones? ¿Por qué se implementa esto de esta manera?
Debido a la adición de elementos a una enumeración crearía efectivamente un super clase , no una clase sub.
considerar:
enum First {One, Two}
enum Second extends First {Three, Four}
First a = Second.Four; // clearly illegal
Second a = First.One; // should work
Este es el reverso de la forma en que trabaja con clases regulares. Supongo que podría implementarse de esa manera, pero sería más complicado de implementar de lo que parece, y sería sin duda confundir a las personas.
Probablemente lo que queremos es primeros implementos MyInterface Segundo implementos MyInterface Luego utilizan MyInterface para la unión de los dos grupos – user1176505
en primer lugar a = Second.One ser una declaración ilegal? –
@TimothySwan El código al que se hace referencia no se compilará, ya que se lanzará una excepción en la línea 'enum Second extends First {Three, Four}'. –
http://stackoverflow.com/questions/55375/add-values-to-enum –
Me gustaría volver a formular su pregunta. ¿Por qué las enumeraciones no pueden tener una base abstracta? La respuesta aceptada a la pregunta citada por Bill explica por qué no puede extender enumeraciones con otros valores, pero aún no está claro para mí por qué no pueden compartir una implementación base. –