English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones de Java

Java Lista (List)

Java Queue (cola)

Java Map colección

Java Set colección

Java Entrada y salida (I/O)

Java Reader/Writer

Temas de Java otros

Sobrecarga de métodos de Java

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)。但是,其他程序员以及您将来可能会感到困惑,因为这两种方法的行为相同,但名称不同。

完成此任务的更好方法是重载方法。并且,根据传递的参数,调用其中一个重载方法。这有助于提高程序的可读性。

如何在Java中执行方法重载?

以下是执行方法重载的不同方法:

1.通过更改参数数量来重载

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

2.通过更改参数的数据类型

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

Consideraciones

  • 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.