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 final
par 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.