Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

HERANÇA METODOS SUBCLASSE

Bom dia. Alguém me tira uma dúvida, acho que não conseguir fixar bem.

Por que quando tento usar uma referência do tipo Funcionario e objeto Gerente, os métodos do Gerente não funcionam?

métodos como o autentica, por exemplo, da erro.

Funcionario f1 = new Gerente();

Desta maneira não seria uma boa prática?

e quando eu uso desta maneira, funciona corretamente.

Gerente f1 = new Gerente();
1 resposta
solução!
Funcionario f1 = new Gerente();

Neste caso você está referenciando um Funcionario, então você só terá acesso ao que um funcionário pode fazer. Nada mais justo, certo? Seria estranho um funcionário conseguir acessar o que um gerente pode.

Você consegue acessar o conteúdo da sua classe e do seu pai(herança). Mas o pai não consegue acessar o conteúdo do filho.

Um jeito mais útil para fazer uso do polimorfismo é, por exemplo, criar uma lista de funcionários ao invés de uma lista para cada tipo de funcionário.

Gerente g1 = new Gerente();
Gerente g2 = new Gerente();
Secretaria s1 = new Secretaria();
Programador p1 = new Programador();

List<Funcionario> funcionarios = new ArrayList<>();
funcionarios.add(g1);
funcionarios.add(g2);
funcionarios.add(s1);
funcionarios.add(p1);