Sobes.tech
Junior — Middle

Kuo skiriasi prieigos modifikatoriai private ir protected objektinio programavimo kalboje?

sobes.tech AI

Atsakymas iš AI

Objektinio programavimo (pavyzdžiui, C#) modifikatoriai private ir protected skiriasi matomumo lygiu klases narių:

  • private — klases narys yra prieinamas tik pačioje klasėje. Nei pogrupiai, nei kitos klasės negali prieiti prie jo.

  • protected — klases narys yra prieinamas pačioje klasėje ir visuose jos pogrupiuose (paveldėtojai), net jei jie yra kitame vardų erdvėje.

Pavyzdys:

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

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

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Klaida: privateField neprieinama
        Console.WriteLine(protectedField);  // Prieinama
    }
}

Taigi, protected išplečia matomumo sritį lyginant su private, leidžiant paveldėtojams dirbti su apsaugotais pagrindinės klasės nariais.