English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá sobre sobrecarga de métodos e como implementar sobrecarga em Java com exemplos.
No Java, se dois ou maisMétodosSe os parâmetros forem diferentes (número diferente de parâmetros, tipos diferentes de parâmetros ou ambos), eles podem ter o mesmo nome. Esses métodos são chamados de métodos sobrecarregados, e essa funcionalidade é chamada 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 método func() é sobrecarregado. Esses métodos têm o mesmo nome, mas aceitam diferentes parâmetros.
Por favor, note que os tipos de retorno desses métodos são diferentes. Os métodos sobrecarregados podem ter diferentes tipos de retorno, ou podem não ter diferentes tipos de retorno, mas os parâmetros que eles aceitam devem ser diferentes.
Suponha que você precise executar a operação de adição de um número dado, mas pode haver qualquer número de parâmetros (por simplicidade, podemos dizer2ou3com parâmetros).
Para completar a tarefa, pode-se criar dois métodos sum2num(int, int) e sum3num(int, int, int). Mas, outros programadores e você no futuro podem se sentir confusos, porque esses dois métodos têm comportamento semelhante, mas nomes diferentes.
A melhor maneira de completar essa tarefa é sobrecarregar o método. E, com base nos parâmetros passados, chame um dos métodos sobrecarregados. Isso ajuda a melhorar a legibilidade do programa.
Aqui estão diferentes métodos para executar a sobrecarga de métodos:
class MethodOverloading { private static void display(int a){ System.out.println("Parâmetro: " + a); } private static void display(int a, int b){ System.out.println("Parâmetro: " + a + " e " + b); } public static void main(String[] args) { display(1); display(1, 4); } }
Saída:
parâmetro: 1 parâmetro: 1 e 4
class MethodOverloading { //Este método aceita um int private static void display(int a){ System.out.println("Ficamos com os dados inteiros."); } //Este método aceita um objeto String private static void display(String a){ System.out.println("Ficamos com o objeto String."); } public static void main(String[] args) { display(1); display("Hello"); } }
Saída:
Ficamos com os dados inteiros Ficamos com o objeto String.
Aqui, os dois métodos sobrecarregados aceitam um parâmetro. Mas, um aceita um parâmetro do tipo int, enquanto o outro aceita um objeto String.
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(5)) System.out.println(hs.formatNumber(89.9934)) System.out.println(hs.formatNumber("550")); } }
Quando o programa for executado, a saída será:
500 89.993 550.00
AtençãoEm Java, você também pode sobrecarregar construtores de maneira semelhante a métodos.
Recomendações relacionadas: Sobrecarga de construtores Java
Se dois ou mais métodos aceitam diferentes parâmetros, eles podem ter o mesmo nome na mesma classe. Esta funcionalidade é chamada de sobrecarga de métodos.
A sobrecarga de métodos pode ser implementada de qualquer uma das seguintes maneiras:
Alterando o número de parâmetros.
ou alterando o tipo de dados dos parâmetros.
Não é possível realizar sobrecarga de métodos apenas alterando o tipo de retorno do método.