Kế thừa và giao diện Java enum

Trong hướng dẫn này, bạn sẽ tìm hiểu về lý do tại sao không thể kế thừa các lớp enum. Bạn cũng sẽ học cách triển khai các giao diện trong một lớp enum.

Trước khi bạn tìm hiểu hướng dẫn này, hãy đảm bảo bạn biết về

  • Java enums
  • Kế thừa Java
  • Giao diện Java

Kế thừa một Lớp từ một Lớp enum

Trong Java, các lớp enum là finaltheo mặc định. Do đó, chúng ta không thể kế thừa các lớp khác từ nó. Ví dụ,

 enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A 

Kế thừa một Lớp enum từ Lớp khác

Chúng tôi không thể mở rộng các lớp enum trong Java. Đó là vì tất cả các enum trong Java đều được kế thừa từ java.lang.Enum. Và việc mở rộng nhiều lớp (đa kế thừa) không được phép trong Java.

Ví dụ,

 class A ( // class body ) enum B extends A ( // class body ) 

Điều này sẽ tạo ra một lỗi.

Java Enum và giao diện

Như chúng ta đã học, chúng ta không thể kế thừa các lớp enum trong Java. Tuy nhiên, các lớp enum có thể triển khai các giao diện.

Ví dụ: giao diện triển khai 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(); ) ) 

Đầu ra

 Kích thước là TRUNG BÌNH 

Trong ví dụ trên, chúng ta đã tạo một Kích thước lớp enum. Lớp này đang thực hiện giao diện Pizza.

Vì chúng tôi đang triển khai một giao diện, chúng tôi đã cung cấp một triển khai của phương thức trừu tượng displaySize()bên trong lớp enum.

thú vị bài viết...