In questo tutorial, imparerai perché l'ereditarietà delle classi enum non è possibile. Imparerai anche a implementare le interfacce in una classe enum.
Prima di imparare questo tutorial, assicurati di conoscere
- Enumerazioni Java
- Eredità Java
- Interfacce Java
Ereditare una classe da una classe enum
In Java, le classi enum sono final
per impostazione predefinita. Quindi, non possiamo ereditare altre classi da esso. Per esempio,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Ereditare una classe enum da un'altra classe
Non è possibile estendere le classi enum in Java. È perché tutte le enumerazioni in Java vengono ereditate da java.lang.Enum
. E l'estensione di più classi (ereditarietà multipla) non è consentita in Java.
Per esempio,
class A ( // class body ) enum B extends A ( // class body )
Questo genererà un errore.
Java Enum e interfaccia
Come abbiamo appreso, non possiamo ereditare le classi enum in Java. Tuttavia, le classi enum possono implementare le interfacce.
Esempio: enum implementazione dell'interfaccia
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(); ) )
Produzione
La taglia è MEDIA
Nell'esempio sopra, abbiamo creato una classe enum Size. Questa classe sta implementando l'interfaccia Pizza.
Poiché stiamo implementando un'interfaccia, abbiamo fornito un'implementazione del metodo astratto displaySize()
all'interno della classe enum.