V tomto tutoriále sa dozviete, prečo nie je možné dedenie tried enum. Naučíte sa tiež implementovať rozhrania v triede enum.
Predtým, ako sa naučíte tento návod, nezabudnite vedieť o
- Java enums
- Java dedičstvo
- Rozhrania Java
Dedenie triedy z triedy enum
V Jave sú triedy enum finalpredvolene. Preto z nej nemôžeme dediť iné triedy. Napríklad,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Dedenie triedy enum z inej triedy
V jazyku Java nemôžeme rozšíriť triedy enum. Je to preto, že všetky enumy v Jave sú zdedené java.lang.Enum. A rozšírenie viacerých tried (viacnásobné dedičstvo) nie je v Jave povolené.
Napríklad,
class A ( // class body ) enum B extends A ( // class body )
Toto vygeneruje chybu.
Java Enum a rozhranie
Ako sme sa dozvedeli, nemôžeme dediť triedy enum v Jave. Triedy enum však môžu implementovať rozhrania.
Príklad: implementačné rozhranie enum
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ýkon
Veľkosť je STREDNÁ
Vo vyššie uvedenom príklade sme vytvorili triedu enum Veľkosť. Táto trieda implementuje rozhranie Pizza.
Pretože implementujeme rozhranie, poskytli sme implementáciu abstraktnej metódy displaySize()vo vnútri triedy enum.








