In diesem Tutorial erfahren Sie, warum die Vererbung von Enum-Klassen nicht möglich ist. Sie werden auch lernen, Schnittstellen in einer Enum-Klasse zu implementieren.
Bevor Sie dieses Tutorial lernen, sollten Sie sich darüber informieren
- Java-Aufzählungen
- Java-Vererbung
- Java-Schnittstellen
Erben einer Klasse von einer Aufzählungsklasse
In Java sind Enum-Klassen final
standardmäßig. Daher können wir keine anderen Klassen davon erben. Beispielsweise,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Eine Aufzählungsklasse von einer anderen Klasse erben
Wir können Enum-Klassen in Java nicht erweitern. Dies liegt daran, dass alle Aufzählungen in Java von geerbt werden java.lang.Enum
. Das Erweitern mehrerer Klassen (Mehrfachvererbung) ist in Java nicht zulässig.
Beispielsweise,
class A ( // class body ) enum B extends A ( // class body )
Dies erzeugt einen Fehler.
Java Enum und Schnittstelle
Wie wir gelernt haben, können wir in Java keine Enum-Klassen erben. Enum-Klassen können jedoch Schnittstellen implementieren.
Beispiel: Enum-Implementierungsschnittstelle
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(); ) )
Ausgabe
Die Größe ist MITTEL
Im obigen Beispiel haben wir eine Aufzählungsklasse Size erstellt. Diese Klasse implementiert die Pizza-Schnittstelle.
Da wir eine Schnittstelle implementieren, haben wir eine Implementierung der abstrakten Methode displaySize()
innerhalb der Enum-Klasse bereitgestellt .