Je sais que plusieurs héritages entre Interfaces sont possibles, par exemple:
public interface C extends A,B {...} //Where A, B and C are Interfaces
Mais est-il possible d'avoir une classe régulière héritée de plusieurs interfaces comme celle-ci:
public class A implements C,D {...} //Where A is a Class and C and D are interfaces
Une classe Java ne peut étendre qu'une seule classe parent. L'héritage multiple (extends
) n'est pas autorisé. Les interfaces ne sont pas des classes, cependant, et une classe peut implémenter plusieurs interfaces.
Les interfaces parentes sont déclarées dans une liste séparée par des virgules, après le mot clé implements
.
En conclusion, oui, il est possible de faire:
public class A implements C,D {...}
c'est la façon d'implémenter l'héritage multiple en Java
En un mot - oui. En fait, de nombreuses classes du JDK implémentent plusieurs interfaces. Par exemple, ArrayList
implémente List
, RandomAccess
, Cloneable
et Serializable
.
Bien sûr ... Presque toutes les classes implémentent plusieurs interfaces. Sur n'importe quelle page de la documentation Java sur Oracle, vous avez une sous-section intitulée "Toutes les interfaces implémentées".
Voici un exemple de la classe Date
.
Oui c'est possible. C'est le hic: Java ne prend pas en charge l'héritage multiple, c'est-à-dire que la classe ne peut pas étendre plus d'une classe. Cependant, la classe peut implémenter plusieurs interfaces.
Une interface peut étendre d'autres interfaces. De plus, une interface ne peut implémenter aucune autre interface. Lorsqu'il s'agit d'une classe, il peut étendre une autre classe et implémenter un nombre illimité d'interfaces.
class A extends B implements C,D{...}