Sobes.tech
Junior — Middle

Care este diferența dintre modificatorii de acces private și protected în programarea orientată pe obiect?

sobes.tech AI

Răspuns de la AI

În programarea orientată pe obiect (exemplu C#), modificatorii de acces private și protected diferă în nivelul de vizibilitate al membrilor clasei:

  • private — membrul clasei este accesibil doar în interiorul clasei în sine. Nici subclasele, nici alte clase nu pot avea acces la el.

  • protected — membrul clasei este accesibil în interiorul clasei și în toate subclasele sale (moștenitori), chiar dacă acestea se află într-un spațiu de nume diferit.

Exemplu:

class BaseClass
{
    private int privateField = 1;
    protected int protectedField = 2;

    void Show()
    {
        Console.WriteLine(privateField);   // Disponibil
        Console.WriteLine(protectedField); // Disponibil
    }
}

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Eroare: privateField inaccesibil
        Console.WriteLine(protectedField);  // Disponibil
    }
}

Prin urmare, protected extinde domeniul de vizibilitate comparativ cu private, permițând moștenitorilor să lucreze cu membrii protejați ai clasei de bază.