Héritage et interface de l'énumération Java

Dans ce didacticiel, vous découvrirez pourquoi l'héritage des classes enum n'est pas possible. Vous apprendrez également à implémenter des interfaces dans une classe enum.

Avant d'apprendre ce didacticiel, assurez-vous de connaître

  • Énumérations Java
  • Héritage Java
  • Interfaces Java

Hériter d'une classe d'une classe enum

En Java, les classes enum sont finalpar défaut. Par conséquent, nous ne pouvons pas en hériter d'autres classes. Par exemple,

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

Hériter d'une classe enum d'une autre classe

Nous ne pouvons pas étendre les classes enum en Java. C'est parce que toutes les énumérations en Java sont héritées de java.lang.Enum. Et l'extension de plusieurs classes (héritage multiple) n'est pas autorisée en Java.

Par exemple,

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

Cela générera une erreur.

Énumération et interface Java

Comme nous l'avons appris, nous ne pouvons pas hériter des classes enum en Java. Cependant, les classes enum peuvent implémenter des interfaces.

Exemple: interface d'implémentation 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(); ) ) 

Production

 La taille est MOYENNE 

Dans l'exemple ci-dessus, nous avons créé une classe d'énumération Size. Cette classe implémente l'interface Pizza.

Puisque nous implémentons une interface, nous avons fourni une implémentation de la méthode abstraite displaySize()dans la classe enum.

Articles intéressants...