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

Chamar metodos em Polimorfismo

Eu entendi o conceito de como usa, e o porque usar, mas nao entendi uma coisa..

No comeco da aula quando a gente fez o Funcionario g1 = new Gerente(); ele mostrou que nao podemos chamar mais os metodos ou atributos do gerente, entao o autentica e a senha seria inutil, ate ai eu entendi, mas porque nao podemos chamar esse metodo e atributo, mas podemos chamar o getBonificacao? seria porque ele existe na classe funcionario? estou bem confuso.

2 respostas
solução!

Olá Marcelo!

Isso mesmo, seu raciocínio está correto.

Você consegue instanciar uma classe Filha como sendo do tipo Pai, mas só será possível utilizar os métodos e atributos que são herdados de pai para filho.

No caso do Gerente e Funcionário, o autentica e senha são exclusivos do Gerente, mas o getBonificacao está disponível para ambos.

Funcionario g1 = new Gerente(); //g1 é um Funcionario, portanto não possui o autentica nem a senha, apenas o getBonificacao
Gerente g2 = new Gerente(); //g2 é um Gerente, que também é um Funcionario, portanto possui o autentica, a senha e o getBonificacao

Obrigado Luiz!