Sobes.tech
Junior — Middle

Aký je rozdiel medzi modifikátormi prístupu private a protected v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

V objektovo orientovanom programovaní (na príklade C#) sa modifikátory prístupu private a protected líšia úrovňou viditeľnosti členov triedy:

  • private — člen triedy je dostupný iba vnútri samotnej triedy. Ani podtriedy, ani iné triedy k nemu nemôžu získať prístup.

  • protected — člen triedy je dostupný vnútri triedy a vo všetkých jej podtriedach (dedičoch), aj keď sa nachádzajú v inom priestore mien.

Príklad:

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

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

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Chyba: privateField nie je dostupné
        Console.WriteLine(protectedField);  // Dostupné
    }
}

Takže, protected rozširuje rozsah viditeľnosti v porovnaní s private, umožňujúc dedičom pracovať s chránenými členmi základnej triedy.