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

Dúvida no exercício de simulado para prova

Olá, estava fazendo um simulado no WhizLabs e me deparei com a seguinte questão:

Which of the following will override correctly?

Object supply() {return null;}

A - public String supply() throws NullPointerException {return null;}
B - int supply() {return 0;}
C - public Object supply() throws Exception {return null;}
D - private Object supply() {return null;}
E - protected Object supply(int x) {return null;}

Eu marquei a resposta C, porém estava errada, o simulado informou que a letra correta é a A, porém achei muito estranho pois, mudou o tipo do método supply(), o que entendo que não configura um override; Gostaria de entender por que a letra correta é a A.

Obrigado

2 respostas
solução!

Bom dia Lucas, a alternativa A está correta porque ao sobrescrever um método você pode mudar o retorno para um subtipo do retorno do pai. Já que o método da super classe retorna Object, suas filhas podem sobrescrever esse método e alterar o retorno para algum tipo que seja filho de Object.

Ficou claro pra ti? Abraços

Obrigado pelo esclarecimento. Ficou perfeitamente claro.

Atc.