Java enum Öröklés és interfész

Ebben az oktatóanyagban megtudhatja, miért nem lehetséges az enum osztályok öröklése. Megtanulja az interfészek megvalósítását egy enum osztályban is.

Mielőtt elsajátítaná ezt az oktatóanyagot, győződjön meg róla, hogy tud róla

  • Java enums
  • Java öröklés
  • Java interfészek

Osztály öröklése az enum osztályból

A Java- finalban alapértelmezés szerint az enum osztályok vannak . Ezért nem örökölhetünk belőle más osztályokat. Például,

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

Egy enum osztály öröklése egy másik osztályból

Nem tudjuk meghosszabbítani az enum osztályokat a Java-ban. Ez azért van, mert az összes Java-enum öröklődik java.lang.Enum. És több osztály kiterjesztése (többszörös öröklés) nem megengedett a Java-ban.

Például,

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

Ez hibát generál.

Java Enum és interfész

Mint megtudtuk, nem örökölhetjük az enum osztályokat a Java-ban. Az enum osztályok azonban megvalósíthatnak interfészeket.

Példa: enum interfész

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

Kimenet

 A méret közepes 

A fenti példában létrehoztunk egy enum osztály Size-ot. Ez az osztály a Pizza felületet valósítja meg.

Mivel egy interfészt displaySize()valósítunk meg , az absztrakt módszer megvalósítását az enum osztályon belül biztosítottuk.

érdekes cikkek...