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.