Sobes.tech
Junior — Middle

Kāda ir atšķirība starp piekļuves modifikatoriem private un protected objektorientētajā programmēšanā?

sobes.tech AI

Atbilde no AI

Objektorientētajā programmēšanā (piemērā ar C#) piekļuves modifikatori private un protected atšķiras klases locekļu redzamības līmenī:

  • private — klases loceklis ir pieejams tikai pašā klasē. Ne apakšklases, ne citas klases nevar piekļūt tam.

  • protected — klases loceklis ir pieejams pašā klasē un visās tās apakšklasēs (mantojumos), pat ja tās atrodas citā nosaukumu telpā.

Piemērs:

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

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

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Kļūda: privateField nav pieejams
        Console.WriteLine(protectedField);  // Pieejams
    }
}

Tādējādi, protected paplašina redzamības jomu salīdzinājumā ar private, ļaujot mantojošajām klasēm strādāt ar aizsargātajiem pamatklases locekļiem.