Java enum Arv og grænseflade

I denne vejledning lærer du om, hvorfor arv af enumklasser ikke er mulig. Du lærer også at implementere grænseflader i en enum-klasse.

Før du lærer denne vejledning, skal du sørge for at vide om

  • Java enums
  • Java-arv
  • Java-grænseflader

Arve en klasse fra en enum-klasse

I Java er enumklasser finalsom standard. Derfor kan vi ikke arve andre klasser fra det. 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 anden klasse

Vi kan ikke udvide enumklasser i Java. Det er fordi alle enums i Java arves fra java.lang.Enum. Og at udvide flere klasser (flere arv) er ikke tilladt i Java.

For eksempel,

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

Dette vil generere en fejl.

Java Enum og interface

Som vi har lært, kan vi ikke arve enumklasser i Java. Dog kan enumklasser implementere grænseflader.

Eksempel: enum implementeringsgrænseflade

 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

 Størrelsen er MEDIUM 

I ovenstående eksempel har vi oprettet en enum klasse størrelse. Denne klasse implementerer Pizza-grænsefladen.

Da vi implementerer en grænseflade, har vi leveret en implementering af den abstrakte metode displaySize()inden for enum-klassen.

Interessante artikler...