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.