Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Implementação do método "paraTexto()"

Durante a vídeo aula, até foi mencionado que, se implementarmos o método na subclasse com assinatura diferente do que a super classe define, teríamos um erro de compilação. Porém notei que, se o retorno, na super classe for "void" e na implementação nas classes filhas retornarmos boolean por exemplo, nenhum erro, tanto de compilação como de execução ocorre. Agora, se a super classe definir um retorno boolean e tentarmos implementar com retorno "void", o código não compila. Não entendi exatamente a diferença nesses dois casos. Por que o primeiro caso compila?

1 resposta
solução!

Fala ai Jackson, tudo bem? Vamos lá:

Por que o primeiro caso compila?

O primeiro caso compila porque o void é um sub tipo de any, ou seja, é possível transformar um retorno vazio para string, assim como é possível ser mais específico no caso de any para boolean (ou qualquer outro tipo).

No segundo caso não compila, pois não tem como ser mais específico, uma vez que definimos que o método deve retornar um number, então ele deve retornar um number (já está específico).

Espero ter ajudado.