I denne opplæringen vil du lære om hvorfor det ikke er mulig å arve enumklasser. Du vil også lære å implementere grensesnitt i en enum-klasse.
Før du lærer deg denne veiledningen, må du sørge for å vite om
- Java enums
- Java-arv
- Java-grensesnitt
Arve en klasse fra en enum-klasse
I Java er enumklasser som final
standard. Derfor kan vi ikke arve andre klasser fra den. For eksempel,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Arve en enum-klasse fra en annen klasse
Vi kan ikke utvide enumklasser i Java. Det er fordi alle enums i Java arves fra java.lang.Enum
. Det er ikke tillatt å utvide flere klasser (flere arv) i Java.
For eksempel,
class A ( // class body ) enum B extends A ( // class body )
Dette vil generere en feil.
Java Enum og grensesnitt
Som vi har lært, kan vi ikke arve enumklasser i Java. Imidlertid kan enumklasser implementere grensesnitt.
Eksempel: Enum implementeringsgrensesnitt
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(); ) )
Produksjon
Størrelsen er MEDIUM
I eksemplet ovenfor har vi opprettet en enum class Size. Denne klassen implementerer Pizza-grensesnittet.
Siden vi implementerer et grensesnitt, har vi gitt en implementering av den abstrakte metoden displaySize()
i enum-klassen.