CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

Java - Sobrecarga (overload)

Por Benedito Silva Júnior - publicado em 15/07/2016


Sobrecarga de método permite a existência de vários métodos de mesmo nome, porém com assinaturas levemente diferentes, ou seja, variando no número, tipo de argumentos, no valor de retorno e até variáveis diferentes.

Ficará a cargo do compilador escolher de acordo com as listas de argumentos os procedimentos ou métodos a serem executados.

Veja:

public class Soma { public int soma(int x, int y) { return x+y; } public String soma(String x, String y) { return x+y; } public double soma(double x, double y) { return x+y; } }

O método que será executado depende estritamente do tipo do parâmetro passado e esta decisão será feita pelo compilador.

A importância de permitir a sobrecarga de métodos não reside em uma mera conveniência para evitar que se tenha que escolher e usar nomes novos para cada definição, ou para evitar conflitos entre nomes existentes em um determinado escopo e, assim, evitar a "poluição" do espaço de nomes usados em programas.

A sobrecarga de métodos tem, outrossim, a propriedade fundamental de permitir que expressões e nomes definidos por meio do uso de símbolos sobrecarregados possam ser usados em contextos que requerem valores de tipos distintos, permitindo assim que sejam definidas novas abstrações polimórficas.

Como um exemplo bastante simples, considere que o símbolo + é sobrecarregado para adição de inteiros e números de ponto flutuante. Nesse caso, podemos ter uma única definição para computar a soma dos inteiros em uma lista, seja ela uma lista de inteiros ou uma lista de números de ponto flutuante.

Em outras palavras, podemos fazer uma única definição, polimórfica, da mesma forma como ocorre no caso, tão justamente louvado, do polimorfismo paramétrico. 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo