Por que não podemos atribuir um privilégio mais fraco na subclasse?
Eu tenho uma classe que tem um método cujo especificador de acesso por padrão é público. Agora, gostaria de estender essa classe em uma subclasse e quero substituir esse método para ter o especificador de acesso "private". Ao compilar este código, estou recebendo um erro de compilação:
"tentando atribuir privilégios de acesso mais fracos".
Alguém poderia me explicar o que está errado em atribuir privilégios mais fracos em uma subclasse?
Aqui está o código que causou o erro de compilação:
class Superclass
{
void foo()
{
System.out.println("Superclass.foo");
}
}
class Subclass extends Superclass
{
private void foo()
{
System.out.println("Subclass.foo");
}
}