Junior — Middle
Каква е разликата между модификаторите за достъп private и protected в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
В обектно-ориентираното програмиране (на пример с C#) модификаторите за достъп private и protected се различават по нивото на видимост на членовете на класа:
-
private — членът на класа е достъпен само вътре в самия клас. Нито подкласовете, нито другите класове могат да имат достъп до него.
-
protected — членът на класа е достъпен вътре в самия клас и във всички негови подкласове (наследници), дори ако те се намират в различно пространство от имена.
Пример:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Достъпно
Console.WriteLine(protectedField); // Достъпно
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Грешка: privateField недостъпно
Console.WriteLine(protectedField); // Достъпно
}
}
Така, protected разширява обхвата на видимост в сравнение с private, позволявайки на наследниците да работят с защитените членове на базовия клас.