Herança e interface de enum Java

Neste tutorial, você aprenderá por que a herança de classes enum não é possível. Você também aprenderá a implementar interfaces em uma classe enum.

Antes de aprender este tutorial, certifique-se de saber sobre

  • Enums Java
  • Herança Java
  • Interfaces Java

Herdando uma classe de uma classe enum

Em Java, as classes enum são finalpor padrão. Portanto, não podemos herdar outras classes dele. Por exemplo,

 enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A 

Herdando uma classe enum de outra classe

Não podemos estender classes enum em Java. É porque todos os enums em Java são herdados de java.lang.Enum. E estender várias classes (herança múltipla) não é permitido em Java.

Por exemplo,

 class A ( // class body ) enum B extends A ( // class body ) 

Isso gerará um erro.

Java Enum e interface

Como aprendemos, não podemos herdar classes enum em Java. No entanto, as classes enum podem implementar interfaces.

Exemplo: interface de implementação de enum

 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(); ) ) 

Resultado

 O tamanho é MÉDIO 

No exemplo acima, criamos uma classe enum Size. Esta classe está implementando a interface Pizza.

Como estamos implementando uma interface, fornecemos uma implementação do método abstrato displaySize()dentro da classe enum.

Artigos interessantes...