Héritage Java : héritage unique ou héritage multiple
Lors d'un entretien d'embauche, on a demandé à un candidat si Java prenait en charge l'héritage multiple. Le candidat a répondu « Non », citant que chaque classe en Java étend Object et que l'extension d'une autre classe comme « La classe A étend la classe B » signifie que la classe A hérite à la fois de la classe B et de l'objet, ce qui est considéré comme un héritage à plusieurs niveaux et non un héritage multiple. .
Cependant, l'intervieweur a contesté cette réponse, arguant que puisque la classe B étend l'objet, l'extension de la classe B dans la classe A entraîne l'héritage de la classe A à la fois de la classe B et de l'objet, constituant essentiellement un héritage multiple.
Clarification
La réponse du candidat était en grande partie correcte dans le contexte de l'exemple spécifique de l'intervieweur. L'héritage multiple fait référence à une situation dans laquelle une classe hérite de deux ou plusieurs bases non liées, créant une structure en « diamant » dans la hiérarchie d'héritage.
Héritage unique de Java à plusieurs niveaux
En Java, cependant, l'héritage est à un seul niveau avec plusieurs niveaux. La classe A étend la classe B, qui à son tour étend l'objet. Cela crée une chaîne d'héritage, mais la classe A n'hérite que directement de la classe B et indirectement de l'objet. Il ne s'agit pas d'un héritage multiple.
Interfaces et méthodes « par défaut »
Bien que Java ne prenne pas en charge l'héritage multiple traditionnel, il possède des interfaces et des méthodes « par défaut » sur les interfaces. (introduit dans Java 8). Cette fonctionnalité permet aux classes d'implémenter plusieurs interfaces et d'hériter de leurs méthodes par défaut respectives.
Cependant, il ne s'agit toujours pas d'un véritable héritage multiple car :
Conclusion
Le modèle d'héritage de Java permet un héritage unique avec plusieurs niveaux via le mot clé "extends" et les interfaces avec les méthodes par défaut fournissent une forme de "lumière d'héritage multiple". Cependant, il est important de distinguer ces concepts du véritable héritage multiple, où une classe peut hériter de plusieurs bases non liées.
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!