Junior — Middle
89
Какое отличие между модификаторами доступа private и protected в объектно-ориентированном программировании?
Ответ от нейросети
sobes.tech 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, позволяя наследникам работать с защищёнными членами базового класса.