Selles õpetuses saate teada, miks loendustundide pärimine pole võimalik. Samuti õpite liideseid rakendama enum klassis.
Enne selle õpetuse õppimist teadke kindlasti
- Java loendid
- Java pärimine
- Java liidesed
Klassi pärimine loendusklassist
Javas on final
vaikimisi enum klassid . Seega ei saa me sellest teisi klasse pärida. Näiteks,
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 klassi pärimine teisest klassist
Me ei saa laiendada Java-arvude klasse. Sellepärast, et kõik Java-s olevad loendid on päritud java.lang.Enum
. Ja mitme klassi laiendamine (mitmekordne pärimine) pole Java-s lubatud.
Näiteks,
class A ( // class body ) enum B extends A ( // class body )
See tekitab vea.
Java Enum ja liides
Nagu oleme õppinud, ei saa me Java-s enum-klassi pärida. Ent enum klassid saavad liideseid rakendada.
Näide: enum rakendusliides
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(); ) )
Väljund
Suurus on KESKMINE
Ülaltoodud näites oleme loonud loendiklassi Suurus. See klass rakendab Pizza liidest.
Kuna rakendame liidest, oleme pakkunud abstraktse meetodi rakendamist displaySize()
enum klassi sees.