En este tutorial, aprenderá por qué la herencia de clases de enumeración no es posible. También aprenderá a implementar interfaces en una clase de enumeración.
Antes de aprender este tutorial, asegúrese de conocer
- Enumeraciones Java
- Herencia de Java
- Interfaces Java
Heredar una clase de una clase enum
En Java, las clases de enumeración son final
predeterminadas. Por lo tanto, no podemos heredar otras clases de él. Por ejemplo,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Heredar una clase enum de otra clase
No podemos extender las clases de enumeración en Java. Es porque todas las enumeraciones en Java se heredan de java.lang.Enum
. Y la extensión de varias clases (herencia múltiple) no está permitida en Java.
Por ejemplo,
class A ( // class body ) enum B extends A ( // class body )
Esto generará un error.
Interfaz y enumeración de Java
Como hemos aprendido, no podemos heredar clases de enumeración en Java. Sin embargo, las clases de enumeración pueden implementar interfaces.
Ejemplo: interfaz de implementación de enumeración
interface Pizza ( public void displaySize(); ) enum Size implements Pizza ( SMALL, MEDIUM, LARGE, EXTRALARGE; public void displaySize() ( System.out.println("The size is " + this); ) ) class Main ( public static void main(String() args) ( Size.MEDIUM.displaySIze(); ) )
Salida
El tamaño es MEDIO
En el ejemplo anterior, hemos creado una clase de enumeración Size. Esta clase está implementando la interfaz Pizza.
Dado que estamos implementando una interfaz, hemos proporcionado una implementación del método abstracto displaySize()
dentro de la clase enum.