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