Junior — Middle
Quelle est la différence entre les modificateurs d'accès private et protected en programmation orientée objet?
sobes.tech IA
Réponse de l'IA
En la programmation orientée objet (en utilisant C# comme exemple), les modificateurs d'accès private et protected diffèrent par le niveau de visibilité des membres de la classe :
-
private — le membre de la classe n'est accessible qu'à l'intérieur de la classe elle-même. Ni les sous-classes ni d'autres classes ne peuvent y accéder.
-
protected — le membre de la classe est accessible à l'intérieur de la classe elle-même et dans toutes ses sous-classes (héritiers), même si elles se trouvent dans un espace de noms différent.
Exemple :
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Disponible
Console.WriteLine(protectedField); // Disponible
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Erreur : privateField inaccessible
Console.WriteLine(protectedField); // Disponible
}
}
Ainsi, protected étend la portée de visibilité par rapport à private, permettant aux héritiers de travailler avec les membres protégés de la classe de base.