Sobrecarga do método Java (com exemplos)

Neste artigo, você aprenderá sobre a sobrecarga de método e como você pode obtê-la em Java com a ajuda de exemplos.

Em Java, dois ou mais métodos podem ter o mesmo nome se forem diferentes em parâmetros (número diferente de parâmetros, tipos diferentes de parâmetros ou ambos). Esses métodos são chamados de métodos sobrecarregados e esse recurso é chamado de sobrecarga de métodos. Por exemplo:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Aqui, o func()método está sobrecarregado. Esses métodos têm o mesmo nome, mas aceitam argumentos diferentes.

Nota : Os tipos de retorno dos métodos acima não são os mesmos. É porque a sobrecarga de método não está associada a tipos de retorno. Os métodos sobrecarregados podem ter tipos de retorno iguais ou diferentes, mas devem ser diferentes nos parâmetros.

Por que sobrecarga de método?

Suponha que você tenha que realizar a adição de números dados, mas pode haver qualquer número de argumentos (digamos 2 ou 3 argumentos para simplificar).

Para realizar a tarefa, você pode criar dois métodos sum2num(int, int)e sum3num(int, int, int)para dois e três parâmetros respectivamente. No entanto, outros programadores, assim como você no futuro, podem ficar confusos, pois o comportamento de ambos os métodos é o mesmo, mas eles diferem pelo nome.

A melhor maneira de realizar essa tarefa é sobrecarregando os métodos. E, dependendo do argumento passado, um dos métodos sobrecarregados é chamado. Isso ajuda a aumentar a legibilidade do programa.

Como realizar a sobrecarga de método em Java?

Aqui estão diferentes maneiras de realizar a sobrecarga de método:

1. Sobrecarga, alterando o número de argumentos

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Produto :

 Argumentos: 1 Argumentos: 1 e 4

2. Alterando o tipo de dados dos parâmetros

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Produto :

Dados inteiros obtidos. Objeto String obtido.

Aqui, os dois métodos sobrecarregados aceitam um argumento. No entanto, um aceita o argumento do tipo intenquanto outro aceita o Stringobjeto.

Vejamos um exemplo do mundo real:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Quando você executa o programa, a saída será:

 500 89,993 550,00

Observação : em Java, você também pode sobrecarregar construtores de maneira semelhante aos métodos.

Leitura recomendada: sobrecarga do construtor Java

Pontos importantes

  • Dois ou mais métodos podem ter o mesmo nome dentro da mesma classe se aceitarem argumentos diferentes. Esse recurso é conhecido como sobrecarga de método.
  • A sobrecarga do método é obtida por:
    • alterando o número de argumentos.
    • ou alterando o tipo de dados dos argumentos.
  • Não é uma sobrecarga de método se apenas alterarmos o tipo de retorno dos métodos. Deve haver diferenças no número de parâmetros.

Artigos interessantes...