В С# мы не можем изменять модификатор доступа, переопределяя метод из базового класса. например.
Class Base
{
**protected** string foo()
{
return "Base";
}
}
Class Derived : Base
{
**public** override string foo()
{
return "Derived";
}
}
Это недействительно в С#, оно даст ошибку времени компиляции.
Я хочу знать причину, почему это не разрешено. Есть ли какая-либо техническая проблема или может привести к чему-то, что несовместимо с точки зрения ограничения доступа???