Interfaces et classe d'objets : héritage et invocation de méthodes
En Java, les interfaces offrent un moyen de définir des contrats que les classes peuvent implémenter. Lorsque l’on considère la relation entre les interfaces et la classe Object, cela soulève la question de l’héritage.
Les interfaces héritent-elles de la classe Object ?
La réponse est non . Les interfaces n'héritent pas de la classe Object. Contrairement aux classes, il n'y a pas d'héritage implicite d'une interface racine commune par toutes les interfaces.
Invocation de méthode sur les instances d'interface
Même si vous n'héritez pas d'Object, vous pouvez invoquer des méthodes comme equals() sur les instances d'interface. Comment est-ce possible ?
Chaque interface déclare implicitement une méthode abstraite publique pour chaque méthode publique dans Object. Par conséquent, même si une interface ne déclare pas explicitement la méthode equals(), elle est implicitement déclarée en tant que membre.
Détails de la spécification du langage Java
La spécification du langage Java (JLS) fournit des détails sur ce comportement au § 9.2 Membres de l'interface :
Conclusion
Les interfaces en Java n'héritent pas d'Object. Cependant, ils déclarent implicitement des méthodes pour toutes les méthodes Object publiques afin de garantir la compatibilité et de permettre l'invocation de méthodes sur les instances d'interface.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!