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 final
por 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.