Maison > Java > javaDidacticiel > En quoi l'héritage de méthode statique diffère-t-il de l'héritage de méthode d'instance en Java ?

En quoi l'héritage de méthode statique diffère-t-il de l'héritage de méthode d'instance en Java ?

Patricia Arquette
Libérer: 2024-12-20 02:12:09
original
495 Les gens l'ont consulté

How Does Static Method Inheritance Differ from Instance Method Inheritance in Java?

Héritage de méthodes statiques en Java

En Java, les règles d'héritage décrites dans le « Guide du programmeur pour la certification Java™ SCJP » sont vraies par exemple les méthodes. Les méthodes d'instance accessibles sont héritées par les sous-classes. Cependant, l'explication du livre ne prend pas en compte le comportement unique des méthodes statiques en matière d'héritage.

Les méthodes statiques, comme leur nom l'indique, appartiennent à la classe plutôt qu'à une instance. Ils sont accessibles via le nom de la classe, quelle que soit la sous-classe qui y accède. Cette caractéristique entraîne un écart par rapport aux règles d'héritage standards pour les méthodes d'instance.

Lorsqu'une sous-classe hérite d'une méthode statique de sa superclasse, elle ne remplace ni n'écrase la méthode. Au lieu de cela, la méthode statique d'origine reste accessible au sein de la sous-classe. Cela contraste avec les méthodes d'instance, où une substitution peut se produire. La raison de cette différence est que les méthodes statiques sont associées à la classe dans son ensemble, et non à des instances individuelles.

Dans l'exemple de code fourni, la classe B peut accéder à la méthode statique display() de sa superclasse, A. , en utilisant soit le nom simple display(), soit le nom complet B.display(). Les deux approches sont valides car la méthode statique est héritée et devient partie intégrante du propre ensemble de méthodes de la classe B.

Il est à noter que dans les didacticiels Sun Java, il est explicitement indiqué que les sous-classes héritent de tous les membres publics et protégés de leur parents, y compris les méthodes statiques (de classe). La distinction entre les méthodes héritées statiques et non statiques réside dans leur comportement lorsque de nouvelles méthodes avec la même signature sont définies dans la sous-classe. Bien que les méthodes non statiques puissent être remplacées, les méthodes statiques sont masquées. Cela signifie que la nouvelle méthode statique de la sous-classe aura la priorité lorsqu'elle sera appelée depuis cette sous-classe, mais que la méthode statique d'origine reste accessible lorsqu'elle sera appelée depuis la superclasse.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal