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ă.