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

Posso ou não acessar métodos de uma subclasse usando o polimorfismo?

O professor explicou na primeira videoaula da aula 3 que posso instanciar um objeto Funcionario como Gerente:

Funcionario gerente = new Gerente();

Mas ele mostrou que não é possível acessar os métodos, por exemplo, o autenticaSenha(int senha) da Classe Gerente.

E por que no exercício sobre a superclasse Veiculo, com suas subclasses Carro e Moto, consigo acessar o método liga(), que pertence às subclasses e não à superclasse? O acesso é permitido porque posso acessar somente métodos sobrescritos?

2 respostas
solução!

Boa noite Murilo,

Exatamente. Caso Funcionario tivesse o método autenticaSenha(), você poderia acessar.

Ou, você pode fazer um casting:

((Gerente) gerente).autenticaSenha();

Mas isso só funcina porque gerente é um Gerente. Se não fosse, haveria uma ClassCastException.

Ficou claro? Avisa aí.

Abraço.

Ficou claro sim Rafael, muito obrigado pelo esclarecimento.