Herencia e interfaz Java enum

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

Articulos interesantes...