Почему мы не можем изменить модификатор доступа во время переопределения g в C #?

В C # мы не можем изменить модификатор доступа при переопределении метода из базового класса. например

Class Base
{
   **protected** string foo()
   {
       return "Base";
   }
}

Class Derived : Base
{
   **public** override string foo()
   {
       return "Derived";
   }
}

Это недопустимо в C #, это приведет к ошибке времени компиляции.

Я хочу знать причину, почему это не разрешено. Есть ли какие-либо технические проблемы или они могут привести к чему-то, что не соответствует ограничению доступа ???

44
задан Ondrej Janacek 1 August 2015 в 16:57
поделиться