Junior
Comment fonctionne le modificateur d'accès 'protected' dans les langages de programmation?
sobes.tech IA
Réponse de l'IA
Le modificateur d’accès protected donne accès à un membre de la classe (champ, méthode ou propriété) depuis :
- La classe elle-même où ce membre est déclaré.
- Les classes dérivées (sous-classes).
- Dans certains langages (par exemple, Java), depuis toutes les classes du même paquet.
Applicabilité par langage :
- Java : Disponible dans le paquet et dans les classes dérivées de n’importe quel paquet.
- C# : Disponible dans la classe et dans les classes dérivées. Il existe aussi la combinaison
protected internal, qui donne accès dans l’assembly et dans les classes dérivées (y compris celles dans d’autres assemblies). - C++ : Disponible dans la classe et dans les classes dérivées.
- Python : Il n’a pas de
protectedstrict. Les membres destinés à la protection sont généralement nommés avec un underscore (_) au début, ce qui est une convention, pas une restriction d’accès.
Exemple (Java) :
class Parent {
protected int protectedField;
protected void protectedMethod() {
// ...
}
}
class Child extends Parent {
public void accessProtected() {
this.protectedField = 10; // Accès depuis la classe dérivée
this.protectedMethod(); // Accès depuis la classe dérivée
}
}
class AnotherClassInSamePackage {
public void accessProtected(Parent p) {
p.protectedField = 20; // Accès depuis le même paquet
p.protectedMethod(); // Accès depuis le même paquet
}
}
class AnotherClassInDifferentPackage {
// N’a pas accès aux membres protected directement
// sauf si c’est une sous-classe
}
protected est largement utilisé pour la mise en œuvre de l’héritage, permettant aux classes dérivées d’étendre la fonctionnalité de la classe parent tout en cachant les détails internes de leur interaction du monde extérieur.