Java enum Ereditarietà e interfaccia

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

Articoli interessanti...