Moștenire și interfață enum Java

În acest tutorial, veți afla de ce moștenirea claselor enum nu este posibilă. De asemenea, veți învăța să implementați interfețe într-o clasă enum.

Înainte de a învăța acest tutorial, asigurați-vă că știți despre

  • Enumeri Java
  • Moștenirea Java
  • Interfețe Java

Moștenirea unei clase dintr-o clasă enum

În Java, clasele enum sunt finalimplicite. Prin urmare, nu putem moșteni alte clase din ea. De exemplu,

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

Moștenirea unei clase enum de la altă clasă

Nu putem extinde clasele enum în Java. Acest lucru se datorează faptului că toate enumerările din Java sunt moștenite de la java.lang.Enum. Și extinderea mai multor clase (moștenire multiplă) nu este permisă în Java.

De exemplu,

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

Aceasta va genera o eroare.

Java Enum și interfață

După cum am învățat, nu putem moșteni clase enum în Java. Cu toate acestea, clasele enum pot implementa interfețe.

Exemplu: interfață de implementare 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(); ) ) 

Ieșire

 Dimensiunea este MEDIE 

În exemplul de mai sus, am creat o clasă enum Size. Această clasă implementează interfața Pizza.

Deoarece implementăm o interfață, am oferit o implementare a metodei abstracte displaySize()în clasa enum.

Articole interesante...