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

Criacao da interface

Olá, gostaria de saber se nesse código abaixo por exemplo:

Autenticavel autenticavel = new Gerente();

A variável autenticavel ganha os métodos que o gerente herda da classe funcionário tambem?

3 respostas
solução!

Opa Andre, tranquilo?

Nesse caso, não. O Java só enxerga o tipo da variável - que nesse caso é Autenticavel, portanto a variável autenticavel só vai poder usar os métodos sobrescritos da interface.

Em outras palavras, por baixo dos panos ele continua sendo um Gerente, mas o Java em tempo de compilação não sabe disso e vai considerar ele como sendo apenas do tipo Autenticavel.

Existem muitas vantagens em programar dessa forma, nesse momento do curso pode parecer complicado já que precisamos de mais alguns conhecimentos específicos para enxergar de fato as vantagens que programar "orientado a interfaces" traz para o nosso código.

Caso tenha interesse, vou deixar aqui dois artigos e uma entrevista(em inglês) que entram com mais detalhes no assunto:

Artigo da Alura:

POO: Interfaces e Implementações

Artigo do blog diogomatheus:

Orientação a Interfaces

Entrevista com Erich Gamma, principal projetista do JUnit e do Eclipse:

Design Principles from Design Patterns

Se tiver qualquer dúvida é só avisar!

Abraços e bons estudos!!

Thiago, muito obrigado pela resposta rápida, clara e objetiva. Me ajudou muito, já estou lendo os artigos que me passou. Obrigado!

Disponha! E tudo bem não entender tudo que os artigos mencionam, muitas coisas só vão ficando claras na prática mesmo! :)