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

Polimorfismo - instanceof

Funcionario f = new Gerente("","",5000,5000);
System.out.print(f instanceof Gerente);

Quando executo o código acima, ele retorna 'true' da mesma forma se eu fazer como o abaixo.

System.out.print(f instanceof Gerente);

No caso o objeto f seriam do tipo das duas classes? Se sim, porque o método autentica dá erro de compilação?

2 respostas
solução!

Oie Hiran, tudo bem contigo?

Pelo fato da classe gerente herdar a classe funcionário, uma instancia da classe "Gerente" também será uma instancia da classe mãe e é por isso que o "instance of" retorna "true" em amobos os casos.

Quanto ao motivo do erro de compilação, imagino que seja por conta de que o método "autentica" não existe na classe "Funcionário" apenas nos filhos dela apresentam esse método, por isso só quando o "Gerente" é instanciado com referência a classe "Gerente" é que se torna possível usar o método "autentica".

Espero ter conseguido ajudar, qualquer outra dúvida fico a disposição :)

Bons estudos!

Olá Igor, consegui entender melhor agora. Obrigado pela ajuda!