Maison >Java >javaDidacticiel >Les méthodes statiques héritent-elles réellement de Java ?

Les méthodes statiques héritent-elles réellement de Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-12 11:30:131051parcourir

Do Static Methods Actually Inherit in Java?

Méthodes statiques dans l'héritage Java

Malgré la compréhension commune selon laquelle les méthodes statiques ne sont pas héritées en Java, il existe une exception déroutante. La confusion vient d'une incompréhension sur la nature de l'héritage dans le langage Java.

Selon la documentation officielle Java, toutes les méthodes accessibles sont héritées par les sous-classes. Cela inclut les méthodes publiques, protégées et privées du package. Les méthodes héritées peuvent être utilisées telles quelles, remplacées, masquées ou complétées par de nouvelles méthodes.

Dans le cas des méthodes statiques, le comportement de l'héritage n'est différent que dans la mesure où les méthodes statiques remplacées dans la sous-classe masquent l'héritage. méthode plutôt que de la remplacer. Lorsqu'elle est invoquée depuis la sous-classe, la méthode cachée de la sous-classe s'exécutera à la place de la méthode héritée.

Par conséquent, la possibilité d'accéder et d'invoquer la méthode statique display() dans la classe B est due au fait que La méthode est héritée avec les autres membres accessibles de la superclasse. Le comportement apparemment anormal de B.display() fonctionne également car il invoque la méthode statique cachée dans la classe B plutôt que celle héritée.

Cette distinction entre remplacement et masquage a des implications significatives. En cas de substitution, la méthode de la sous-classe s'exécute toujours, qu'elle soit invoquée depuis la superclasse ou la sous-classe. Cependant, en cas de masquage, la méthode invoquée dépend du contexte. Si la méthode statique est invoquée depuis la superclasse, la méthode héritée s'exécutera ; sinon, la méthode cachée dans la sous-classe s'exécutera.

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!

Déclaration:
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