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.