Na sobrecarga de métodos, o método da classe filha possui uma assinatura ligeiramente diferente do método herdado. Embora os métodos tenham necessariamente de ter o mesmo nome, eles podem diferir pelos parâmetros do método e, facultativamente, pelo tipo de valor de retorno.
|
A linguagem java não aceita a sobrecarga de métodos que difiram apenas pelo tipo de valor de retorno. |
O que é relevante enfatizar é que esses métodos sobrecarregados são novos métodos e não tem qualquer relação com o método herdado, a não ser a funcionalidade implementada.
Por exemplo, vamos sobrecarregar a função mostrar da classe Quadrado para que também possamos em lugar de mostrar no console retornar a String com o nome da forma e o comprimento:
public class Quadrado extends Retangulo { ... public void mostrar() { System.out.println(”Quadrado ” + this.getComprimento()); } public String mostrar(int formato) { if(formato==1){ return ”Quadrado”; } else{ return ”Quadrado ” + this.getComprimento().toString(); } } }
No exemplo acima, criamos um método mostrar, que recebe um parâmetro inteiro e retorna uma String. Dependendo do valor do formato, ele imprimirá apenas o nome da forma (“Quadrado”) ou o nome da forma seguido do comprimento.