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

Sobrescrito x Sobrecarregado

Sobrescrito não altera a assinatura do método, enquanto sobrecarregado altera a assinatura do método passando outros parâmetros como por exemplo?

3 respostas

Oi Manoel!

Um exemplo de uso da sobrecarga é quando queremos tornar flexível pra quem chama um método, passar determinado parâmetro porque ele pode ter um valor padrão. O método com o mesmo nome aparece mais de uma vez na classe, e a única forma que temos de diferenciar qual chamar é por meio da quantidade/tipo dos parâmetros.

Se pegarmos a própria API de datas que veio no Java 8, temos um exemplo disto. O método of() da classe LocalDateTime tem algumas sobrecargas, numa delas podemos passar ano, mes, dia, hora, minuto e segundo:

LocalDateTime horaComSegundo = LocalDateTime.of(2018, 09, 09, 12, 04, 05);

Mas podemos chamar o mesmo método sem passar os segundos, o que fará com que o LocalDateTime o valor do segundo seja 0:

LocalDateTime horaComSegundo = LocalDateTime.of(2018, 09, 09, 12, 04);

Espero ter ajudado. Abraço!

solução!

Primeiramente assinatura do método é seu nome e seus parâmetros .

Sobrecarga é outro método com o mesmo nome , e uma lista de parâmetros diferentes(número e/ou tipos). O compilador não considera o tipo de retorno ao diferenciar métodos, portanto, você não pode declarar dois métodos com a mesma assinatura, mesmo se eles tiverem um tipo de retorno diferente.

Sobrescrita é de fato reescrever um método definido em uma classe pai como mesma assinatura, podendo alterar o tipo de retorna para um subtipo

Para maiores informações :

https://beginnersbook.com/2014/01/exception-handling-in-method-overriding-with-example/

https://docs.oracle.com/javase/tutorial/java/IandI/override.html

https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html

Esclaredora as respostas.