Sobrecarga del método Java (con ejemplos)

En este artículo, aprenderá sobre la sobrecarga de métodos y cómo puede lograrlo en Java con la ayuda de ejemplos.

En Java, dos o más métodos pueden tener el mismo nombre si difieren en los parámetros (diferente número de parámetros, diferentes tipos de parámetros o ambos). Estos métodos se denominan métodos sobrecargados y esta característica se denomina sobrecarga de métodos. Por ejemplo:

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

Aquí, el func()método está sobrecargado. Estos métodos tienen el mismo nombre pero aceptan diferentes argumentos.

Nota : Los tipos de devolución de los métodos anteriores no son los mismos. Es porque la sobrecarga de métodos no está asociada con los tipos de retorno. Los métodos sobrecargados pueden tener los mismos o diferentes tipos de retorno, pero deben diferir en los parámetros.

¿Por qué la sobrecarga de métodos?

Supongamos que tiene que realizar la suma de números dados, pero puede haber cualquier número de argumentos (digamos 2 o 3 argumentos para simplificar).

Para realizar la tarea, puede crear dos métodos sum2num(int, int)y sum3num(int, int, int)para dos y tres parámetros respectivamente. Sin embargo, otros programadores, así como usted en el futuro, pueden confundirse ya que el comportamiento de ambos métodos es el mismo pero difieren por el nombre.

La mejor manera de realizar esta tarea es mediante la sobrecarga de métodos. Y, dependiendo del argumento pasado, se llama a uno de los métodos sobrecargados. Esto ayuda a aumentar la legibilidad del programa.

¿Cómo realizar la sobrecarga de métodos en Java?

Aquí hay diferentes formas de realizar la sobrecarga de métodos:

1. Sobrecarga al cambiar el 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); ) )

Salida :

 Argumentos: 1 Argumentos: 1 y 4

2. Cambiando el tipo de datos de los 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"); ) ) 

Salida :

Obtuve datos enteros. Obtuvo el objeto String.

Aquí, ambos métodos sobrecargados aceptan un argumento. Sin embargo, uno acepta el argumento de tipo intmientras que otro acepta el Stringobjeto.

Veamos un ejemplo del 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")); ) )

Cuando ejecute el programa, la salida será:

 500 89,993 550,00

Nota : En Java, también puede sobrecargar constructores de forma similar a los métodos.

Lectura recomendada: Sobrecarga del constructor de Java

Puntos importantes

  • Dos o más métodos pueden tener el mismo nombre dentro de la misma clase si aceptan diferentes argumentos. Esta característica se conoce como sobrecarga de métodos.
  • La sobrecarga del método se logra mediante:
    • cambiando el número de argumentos.
    • o cambiar el tipo de datos de los argumentos.
  • No es una sobrecarga de métodos si solo cambiamos el tipo de retorno de los métodos. Debe haber diferencias en el número de parámetros.

Articulos interesantes...