Por que não podemos alterar o modificador de acesso ao substituir métodos em C #?
Em C #, não podemos alterar o modificador de acesso ao substituir um método da classe base. por exemplo
Class Base
{
**protected** string foo()
{
return "Base";
}
}
Class Derived : Base
{
**public** override string foo()
{
return "Derived";
}
}
Isso não é válido em C #, ele dará erro de tempo de compilaçã
Quero saber o motivo, por que não é permitido. Existe algum problema técnico ou pode levar a algo que não é consistente em termos de restrição de acesso ???