У овом упутству ћете научити зашто наследство класа енум није могуће. Такође ћете научити да примените интерфејсе у енум класи.
Пре него што научите овај водич, обавезно сазнајте више о њему
- Јава набраја
- Наследство Јава
- Јава интерфејси
Наслеђивање класе из енум класе
У Јави су класе енум final
подразумевано. Отуда не можемо из њега наследити друге класе. На пример,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Наслеђивање енум класе из друге класе
Не можемо проширити енум класе на Јави. То је зато што су сви енуми у Јави наслеђени од java.lang.Enum
. А проширивање више класа (вишеструко наслеђивање) није дозвољено на Јави.
На пример,
class A ( // class body ) enum B extends A ( // class body )
Ово ће генерисати грешку.
Јава Енум и интерфејс
Као што смо научили, не можемо наследити енум класе на Јави. Међутим, енум класе могу да имплементирају интерфејсе.
Пример: енум који имплементира интерфејс
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(); ) )
Оутпут
Величина је СРЕДЊА
У горњем примеру смо креирали енум класу Сизе. Ова класа имплементира интерфејс Пизза.
Пошто имплементирамо интерфејс, обезбедили смо примену апстрактне методе displaySize()
унутар класе енум.