web-dev-qa-db-fra.com

Une classe normale peut-elle implémenter plusieurs interfaces?

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
26
Joshua

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 {...}
58
Christian

c'est la façon d'implémenter l'héritage multiple en Java

8
java seeker

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.

4
Mureinik

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.

3
carexcer

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.

2
AlexR

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{...}
0
Nirmal Dalmia