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

[Dúvida] Goleiro pega a bola com a mão?

Apenas para ter certeza que o raciocínio é comparável.

Funcionario f = new Gerente();
f.autentica(1234);

O trecho de código acima não funciona assim como o seguinte abaixo não funcionaria

JogadorDeFutebol buffon = new Goleiro();
pegaBolaComAMao();

porque goleiro é um tipo específico de jogador, mas nem todo jogador de futebol é goleiro, podendo pegar a bola com a mão. Logo, isso quer dizer que, em Java, o método vai ser buscado no marcador de tipo da variável. É isso?

2 respostas
solução!

Exato Saulo, em Java, quando você tem uma variável de referência de um tipo mais genérico, você só pode chamar métodos que são definidos nesse tipo mais genérico, mesmo que o objeto real ao qual a variável se refere seja de um tipo mais específico que tenha implementações adicionais ou diferentes para esses métodos.

Isso mesmo!

O método (ação) de pegaBolaComAMao(); é exclusiva do Goleiro() que além desse método, ainda tem todas as características e métodos de um JogadorDeFutebol().

Porém, o JogadorDeFutebol, não terá os métodos do Goleiro.