Sobes.tech
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.