Java enum Arv och gränssnitt

I den här handledningen lär du dig varför det inte är möjligt att arva enumklasser. Du lär dig också att implementera gränssnitt i en enum-klass.

Innan du lär dig denna handledning, se till att veta om

  • Java enums
  • Java-arv
  • Java-gränssnitt

Ärva en klass från en enum-klass

I Java är enumklasser som finalstandard. Därför kan vi inte ärva andra klasser från det. Till exempel,

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

Ärva en Enum-klass från en annan klass

Vi kan inte förlänga enumklasser i Java. Det beror på att alla enums i Java ärvs från java.lang.Enum. Och att förlänga flera klasser (flera arv) är inte tillåtet i Java.

Till exempel,

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

Detta genererar ett fel.

Java Enum och gränssnitt

Som vi har lärt oss kan vi inte ärva enumklasser i Java. Emellertid kan enumklasser implementera gränssnitt.

Exempel: enum implementeringsgränssnitt

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

Produktion

 Storleken är MEDIUM 

I exemplet ovan har vi skapat en Enum-klassstorlek. Denna klass implementerar Pizza-gränssnittet.

Eftersom vi implementerar ett gränssnitt har vi tillhandahållit en implementering av den abstrakta metoden displaySize()inom enumklassen.

Intressanta artiklar...