Dalam tutorial ini, Anda akan belajar tentang mengapa pewarisan kelas enum tidak dimungkinkan. Anda juga akan belajar mengimplementasikan antarmuka di kelas enum.
Sebelum Anda mempelajari tutorial ini, pastikan untuk mengetahuinya
- Enum Java
- Warisan Jawa
- Antarmuka Java
Mewarisi Kelas dari Kelas enum
Di Java, kelas enum secara final
default. Oleh karena itu, kita tidak dapat mewarisi kelas lain darinya. Sebagai contoh,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Mewarisi Kelas enum dari Kelas Lain
Kami tidak dapat memperluas kelas enum di Java. Itu karena semua enum di Java diwarisi dari java.lang.Enum
. Dan memperluas banyak kelas (multiple inheritance) tidak diperbolehkan di Java.
Sebagai contoh,
class A ( // class body ) enum B extends A ( // class body )
Ini akan menghasilkan kesalahan.
Java Enum dan Antarmuka
Seperti yang telah kita pelajari, kita tidak bisa mewarisi kelas enum di Java. Namun, kelas enum dapat mengimplementasikan antarmuka.
Contoh: enum implementasi antarmuka
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(); ) )
Keluaran
Ukurannya SEDANG
Dalam contoh di atas, kami telah membuat kelas enum Size. Kelas ini menerapkan antarmuka Pizza.
Karena kami mengimplementasikan antarmuka, kami telah menyediakan implementasi metode abstrak displaySize()
di dalam kelas enum.