Junior — Middle
Mi a különbség a private és protected hozzáférés módosítók között az objektumorientált programozásban?
sobes.tech MI
Válasz az MI-től
Az objektumorientált programozásban (például C# példával) a hozzáférés módosítói, a private és protected, különböznek a osztály tagjainak láthatósági szintjében:
-
private — az osztály tagja csak az osztályon belül érhető el. Sem az alosztályok, sem más osztályok nem férhetnek hozzá.
-
protected — az osztály tagja az osztályon belül és minden alosztályában (örökösök) elérhető, még akkor is, ha azok más névterületen vannak.
Példa:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Elérhető
Console.WriteLine(protectedField); // Elérhető
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Hiba: privateField nem elérhető
Console.WriteLine(protectedField); // Elérhető
}
}
Így a protected kibővíti a láthatósági területet a private-hez képest, lehetővé téve az örökösök számára, hogy a védett tagokkal dolgozzanak az alap osztályból.