Sobes.tech
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, позволяя наследникам работать с защищёнными членами базового класса.