Java enum Perintö ja käyttöliittymä

Tässä opetusohjelmassa opit, miksi enum-luokkien periminen ei ole mahdollista. Opit myös toteuttamaan rajapintoja enum-luokassa.

Ennen kuin opit tämän opetusohjelman, muista tietää siitä

  • Java-keskustelut
  • Java-perintö
  • Java-käyttöliittymät

Luokan periminen enum-luokasta

Javassa enum-luokat ovat finaloletusarvoisesti. Siksi emme voi periä muita luokkia siitä. Esimerkiksi,

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

Enum-luokan periminen toisesta luokasta

Emme voi laajentaa Java-luokkia. Tämä johtuu siitä, että kaikki Java-keskustelut on peritty java.lang.Enum. Ja useiden luokkien laajentaminen (useita perintöjä) ei ole sallittua Javassa.

Esimerkiksi,

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

Tämä aiheuttaa virheen.

Java Enum ja käyttöliittymä

Kuten olemme oppineet, emme voi periä Java-luokkia. Enum-luokat voivat kuitenkin toteuttaa rajapintoja.

Esimerkki: enum-käyttöliittymä

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

Tuotos

 Koko on MEDIUM 

Yllä olevassa esimerkissä olemme luoneet enum-luokan Koko. Tämä luokka toteuttaa Pizza-käyttöliittymän.

Koska olemme toteuttamassa käyttöliittymää, olemme toimittaneet abstraktin menetelmän toteutuksen displaySize()enum-luokan sisällä.

Mielenkiintoisia artikkeleita...