Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método sobrescrito e específico da classe filha

Porque quando declarado a variável Funcionario g=new Gerente(), é possível usar o método getBonificacao() sobrescrito na classe filha, mas o autentica() que é um método específico da classe não funciona, sendo que os dois são declarados na mesma classe?

2 respostas
solução!

Oie Lucas, tudo bem contigo?

Quando usamos uma referência mais genérica para instanciar uma classe mais específica, só podemos usar os métodos que têm como origem a referência genérica, ou seja:

Ao fazer Funcionario g = new Gerente() você só poderá usar os métodos originários de "Funcionario" e não poderá usar os métodos específicos da classe "Gerente". O método "getBonificacao" é possível de usar já que por mais que ele tenha sido sobrescrito ele ainda foi herdado da classe "Funcionario", agora o "autentica()" foi criado na classe "Gerente", por isso, ele não consegue ser acessado.

Ao fazer Gerente g = new Gerente() você consegue acessar todos os métodos, tanto aqueles que foram herdados de "Funcionario" como aqueles que foram criados diretamente na classe "Gerente".

Espero ter ajudado!

Se tiver restado qualquer dúvida estarei por aqui :)

obrigado igor, entendi agora!