Maison > Java > javaDidacticiel > Pourquoi Eclipse signale-t-il l'accès aux champs protégés comme invalide dans l'héritage Java ?

Pourquoi Eclipse signale-t-il l'accès aux champs protégés comme invalide dans l'héritage Java ?

Patricia Arquette
Libérer: 2024-12-15 10:28:15
original
877 Les gens l'ont consulté

Why Does Eclipse Flag Protected Field Access as Invalid in Java Inheritance?

Comprendre le modificateur protégé de Java

La confusion d'Eclipse sur l'accès protégé

Lors de l'examen d'une hiérarchie de classes, Eclipse marque par erreur l'accès d'un champ protégé comme invalide . Cette contradiction apparente résulte d'une mauvaise compréhension de la fonctionnalité prévue du modificateur protected.

Selon la spécification du langage Java (JLS), un membre protégé est accessible dans le package de la classe déclarante et par les sous-classes de cette classe, indépendamment du package de la sous-classe. Dans ce cas, la classe A déclare le champ protégé protectedInt.

Analyse des problèmes

Dans l'exemple donné, la classe C étend la classe A, ce qui signifie que les instances C doivent avoir accès au champ protectedInt de A. Cependant, Eclipse signale que l'accès est interdit lors de l'utilisation d'une instance de A dans C.

Résoudre l'écart

La solution réside dans la compréhension que l'accès protégé est limité aux sous-classes de la classe déclarante. Par conséquent, le champ protectedInt de A n'est accessible que par les instances de C ou les sous-classes de C. Il s'agit d'une distinction cruciale qui manque à Eclipse.

Pour illustrer, l'accès à protectedInt via une instance de C fonctionnerait comme prévu :

C c = new C();
System.out.println(c.protectedInt); // Access to 'protectedInt' allowed
Copier après la connexion

En fin de compte, le modificateur protected fournit un accès contrôlé aux champs et aux méthodes, leur permettant d'être hérités par les sous-classes tout en conservant l'encapsulation dans un paquet.

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