Maison > Java > javaDidacticiel > Pourquoi ne puis-je pas accéder à un membre protégé dans une sous-classe Java à partir d'un autre package ?

Pourquoi ne puis-je pas accéder à un membre protégé dans une sous-classe Java à partir d'un autre package ?

Linda Hamilton
Libérer: 2024-12-10 04:47:12
original
878 Les gens l'ont consulté

Why Can't I Access a Protected Member in a Java Subclass From Another Package?

Comprendre le modificateur protégé de Java

Problème :

Considérons deux classes, A et C, où C étend A. Supposons A déclare une variable d'instance comme protected int protectedInt = 1. Malgré l'attente selon laquelle les membres protégés devraient être accessibles au sein des sous-classes d'autres packages, Eclipse signale l'accès à protectedInt dans la classe C comme non visible.

Réponse :

Le modificateur Java protected permet l'accès à un membre dans son propre package et par sous-classes , mais uniquement lorsque l'accès se fait via une instance de la sous-classe. En effet, l'accès protégé s'étend au type de sous-classe, et non à la classe dans laquelle le membre protégé est déclaré.

Selon la spécification du langage Java (JLS), « L'accès n'est autorisé que dans le corps d'une sous-classe. S de C." Cela signifie que même si C étend A, l'accès direct à protectedInt depuis une instance de A n'est pas autorisé.

Solution :

Pour accéder aux membres protégés d'une sous-classe , le type de sous-classe doit être utilisé. Par exemple, le code suivant serait valide :

C c = new C();
System.out.println(c.protectedInt);
Copier après la connexion

Dans ce cas, l'accès se fait via une instance de la sous-classe (C), le membre protégé est donc visible.

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