Nasljeđivanje i sučelje Java enum

U ovom ćete tutorialu naučiti zašto nasljeđivanje enum klasa nije moguće. Također ćete naučiti implementirati sučelja u enum klasi.

Prije nego što naučite ovaj tutorial, obavezno saznajte više o njemu

  • Java nabrajanja
  • Nasljeđivanje Java
  • Java sučelja

Nasljeđivanje klase iz enum klase

U Javi su enum klase finalprema zadanim postavkama. Stoga iz njega ne možemo naslijediti druge klase. Na primjer,

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

Nasljeđivanje enum klase iz druge klase

Ne možemo proširiti enum klase na Javi. To je zato što su svi enumi u Javi naslijeđeni od java.lang.Enum. A proširivanje više klasa (višestruko nasljeđivanje) nije dopušteno u Javi.

Na primjer,

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

To će generirati pogrešku.

Java Enum i sučelje

Kao što smo naučili, ne možemo naslijediti enum klase u Javi. Međutim, enum klase mogu implementirati sučelja.

Primjer: sučelje koje implementira nabrajanje

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

Izlaz

 Veličina je SREDNJA 

U gornjem primjeru stvorili smo enum klasu Size. Ova klasa implementira sučelje Pizza.

Budući da implementiramo sučelje, osigurali smo implementaciju apstraktne metode displaySize()unutar enum klase.

Zanimljivi članci...