Bu eğitimde, enum sınıflarının kalıtımının neden mümkün olmadığını öğreneceksiniz. Ayrıca bir enum sınıfında arabirimleri uygulamayı da öğreneceksiniz.
Bu öğreticiyi öğrenmeden önce, aşağıdakileri bildiğinizden emin olun:
- Java numaralandırmaları
- Java kalıtımı
- Java arayüzleri
Enum Sınıfından Sınıf Devralma
Java'da, enum sınıfları final
varsayılan olarak vardır. Bu nedenle, ondan diğer sınıfları miras alamayız. Örneğin,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Başka Bir Sınıftan Bir Enum Sınıfını Devralma
Java'daki sıralama sınıflarını genişletemiyoruz. Bunun nedeni, Java'daki tüm numaralandırmaların miras almasıdır java.lang.Enum
. Ve Java'da birden çok sınıfın genişletilmesine (çoklu miras) izin verilmez.
Örneğin,
class A ( // class body ) enum B extends A ( // class body )
Bu bir hata oluşturacaktır.
Java Enum ve Arabirimi
Öğrendiğimiz gibi, Java'daki enum sınıflarını miras alamayız. Ancak, numaralandırma sınıfları arabirimleri uygulayabilir.
Örnek: enum uygulama arabirimi
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(); ) )
Çıktı
Boyut ORTA
Yukarıdaki örnekte Size enum sınıfı oluşturduk. Bu sınıf, Pizza arayüzünü uyguluyor.
Bir arabirim uyguladığımız için displaySize()
, enum sınıfının içinde soyut yöntemin bir uygulamasını sağladık .