Junior — Middle
Qual è la differenza tra i modificatori di accesso private e protected nella programmazione orientata agli oggetti?
sobes.tech AI
Risposta dell'AI
Nella programmazione orientata agli oggetti (ad esempio in C#), i modificatori di accesso private e protected differiscono nel livello di visibilità dei membri della classe:
-
private — il membro della classe è accessibile solo all'interno della stessa classe. Né le sottoclassi né altre classi possono accedervi.
-
protected — il membro della classe è accessibile all'interno della stessa classe e in tutte le sue sottoclassi (ereditarie), anche se si trovano in uno spazio dei nomi diverso.
Esempio:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Disponibile
Console.WriteLine(protectedField); // Disponibile
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Errore: privateField non accessibile
Console.WriteLine(protectedField); // Disponibile
}
}
Pertanto, protected amplia l'ambito di visibilità rispetto a private, consentendo agli eredi di lavorare con i membri protetti della classe base.