Junior — Middle
Jaký je rozdíl mezi modifikátory přístupu private a protected v objektově orientovaném programování?
sobes.tech AI
Odpověď od AI
V objektově orientovaném programování (na příkladu C#) se modifikátory přístupu private a protected liší úrovní viditelnosti členů třídy:
-
private — člen třídy je dostupný pouze uvnitř samotné třídy. Ani podtřídy, ani jiné třídy k němu nemají přístup.
-
protected — člen třídy je dostupný uvnitř třídy a ve všech jejích podtřídách (dědicích), i když jsou v jiném jmenném prostoru.
Pří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 není dostupné
Console.WriteLine(protectedField); // Dostupné
}
}
Tedy, protected rozšiřuje oblast viditelnosti ve srovnání s private, umožňuje dědicům pracovat s chráněnými členy základní třídy.