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

Método Logar

Não ficou muito claro pra mim por que o tipo do parâmetro do método Logar é Autenticavel. Ele não poderia ser do tipo FuncionarioAutenticavel?

Por que de qualquer forma, a classe concreta que herdar de FuncionarioAutenticavel deve implementar o método Logar

3 respostas
solução!

Boa noite, Leonardo! Como vai?

O parâmetro é do tipo Autenticavel para permitir que objetos de todas as classes que implementem essa interface possam se logar no sistema! De modo que, se o parâmetro fosse do tipo FuncionarioAutenticavel, então apenas os objetos das classes que herdassem dela poderiam se logar. Com isso, objetos de classes como a ParceiroComercial deixariam de poder efetuar o login, uma vez que essa classe não herda de FuncionarioAutenticavel e, por questões de coerência nem poderia!

Sendo assim, é apenas através de um parâmetro do tipo Autenticavel que o método é capaz de receber qualquer objeto passível de se logar no sistema, seja ele um funcionário ou até mesmo um parceiro comercial.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Eu tinha pensado nessa possibilidade mas descartei. Então podemos deixar nossos métodos mais genéricos já que podemos definir um tipo de parâmetro de uma interface aí qualquer classe que implementar a interface poderá usar o método. Entendi. Obrigado Gabriel

É exatamente isso, Leonardo! Vc entendeu corretamente! E, pra fechar com chave de ouro, essa capacidade de nos referenciar a objetos de forma mais genérica é o mundialmente famoso conceito de polimorfismo!

Desejo sucesso nos seus estudos! E, sempre que precisar de ajuda, é só mandar aqui no fórum da Alura!

Grande abraço, meu aluno!