Спадкування та інтерфейс Java enum

У цьому підручнику ви дізнаєтесь про те, чому успадкування класів переліку неможливе. Ви також навчитеся реалізовувати інтерфейси в класі 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.

Цікаві статті...