English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá sobre la sobrecarga de métodos y cómo implementar la sobrecarga mediante ejemplos en Java.
En Java, si dos o másmétodosSi los parámetros son diferentes (distinta cantidad de parámetros, distinto tipo de parámetros o ambos), pueden tener el mismo nombre. Estos métodos se llaman métodos sobrecargados, y esta función se llama sobrecarga de métodos. Por ejemplo:
void func() { ... } void func(int a) { ... } float func(double a) { ... } float func(int a, float b) { ... }
Aquí, el método func() está sobrecargado. Estos métodos tienen el mismo nombre, pero aceptan diferentes parámetros.
Por favor, tenga en cuenta que los tipos de retorno de estos métodos son diferentes. Los métodos sobrecargados pueden tener diferentes tipos de retorno, o también pueden no tener diferentes tipos de retorno, pero los parámetros que aceptan deben ser diferentes.
假设您必须执行给定数字的加法运算,但是可以有任意数量的参数(为简单起见,可以说2个或3个参数)。
为了完成任务,可以分别为两个和三个参数创建两个方法sum2num(int, int)和sum3num(int, int, int)。但是,其他程序员以及您将来可能会感到困惑,因为这两种方法的行为相同,但名称不同。
完成此任务的更好方法是重载方法。并且,根据传递的参数,调用其中一个重载方法。这有助于提高程序的可读性。
以下是执行方法重载的不同方法:
class MethodOverloading { private static void display(int a){ System.out.println("参数: " + a); } private static void display(int a, int b){ System.out.println("参数: " + a + " 和 " + b); } public static void main(String[] args) { display(1); display(1, 4); } }
输出:
参数: 1 参数: 1 和 4
class MethodOverloading { //此方法接受int private static void display(int a){ System.out.println("得到了整数数据."); } //此方法接受String对象 private static void display(String a){ System.out.println("得到了String对象。"); } public static void main(String[] args) { display(1); display("Hello"); } }
输出:
得到了整数数据 得到了String对象。
在这里,两个重载方法都接受一个参数。但是,一个接受int类型的参数,而另一个接受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")); } }
Al ejecutar el programa, la salida es:
500 89.993 550.00
AtenciónEn Java, también se puede sobrecargar los constructores de manera similar a los métodos.
Recomendado: Sobrecarga de constructores Java
Si dos o más métodos aceptan diferentes parámetros, pueden tener el mismo nombre en la misma clase. Esta función se llama sobrecarga de métodos.
La sobrecarga de métodos se puede implementar de la siguiente manera:
Cambiar la cantidad de parámetros.
o cambiar el tipo de datos de los parámetros.
No se puede realizar la sobrecarga de métodos solo cambiando el tipo de retorno del método.