Dedovanje in vmesnik Java enum

V tej vadnici boste izvedeli, zakaj dedovanje razredov enum ni mogoče. Naučili se boste tudi izvajati vmesnike v enum razredu.

Preden se naučite te vadnice, se prepričajte o tem

  • Java naštevanja
  • Dedovanje Java
  • Java vmesniki

Podedovanje razreda iz enum razreda

V Javi so finalprivzeto razredi enum . Iz njega torej ne moremo podedovati drugih razredov. Na primer

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

Podedovanje enum razreda iz drugega razreda

V Javi ne moremo razširiti razredov enum. To je zato, ker so vsi enumi v Javi podedovani od java.lang.Enum. In razširitev več razredov (večkratno dedovanje) v Javi ni dovoljeno.

Na primer

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

To bo povzročilo napako.

Java Enum in vmesnik

Kot smo se naučili, v Javi ne moremo podedovati razredov enum. Vendar lahko razredi enum izvajajo vmesnike.

Primer: enum, ki izvaja vmesnik

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

Izhod

 Velikost je SREDNJA 

V zgornjem primeru smo ustvarili enum razred Velikost. Ta razred izvaja vmesnik Pizza.

Ker izvajamo vmesnik, smo displaySize()v razredu enum zagotovili izvedbo abstraktne metode .

Zanimive Članki...