У цьому підручнику ви дізнаєтесь про те, чому успадкування класів переліку неможливе. Ви також навчитеся реалізовувати інтерфейси в класі enum.
Перш ніж вивчити цей підручник, обов’язково знайте про
- Перелічення Java
- Успадкування Java
- Інтерфейси Java
Спадкування класу від класу з перерахуванням
У Java класи перерахування є 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. Це тому, що всі перелічення в Java успадковані від java.lang.Enum
. А розширення декількох класів (множинне успадкування) в Java заборонено.
Наприклад,
class A ( // class body ) enum B extends A ( // class body )
Це призведе до помилки.
Java Enum та інтерфейс
Як ми дізналися, ми не можемо успадкувати класи переліку в Java. Однак класи 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(); ) )
Вихідні дані
Розмір середній
У наведеному вище прикладі ми створили клас перерахування Size. Цей клас реалізує інтерфейс Pizza.
Оскільки ми реалізуємо інтерфейс, ми забезпечили реалізацію абстрактного методу displaySize()
всередині класу enum.