Sobrecarga de métodos en Java

Icono play
Java
Sobrecarga de funciones

Hoy hablaremos de la sobrecarga de métodos o funciones en Java.

¿Qué es sobrecargar un método en Java?

Se le llama sobrecarga de funciones o métodos a la creación de varias funciones dentro de nuestro programa, que tienen el mismo nombre, pero sus argumentos son distintos y realizan distinta acción.

Básicamente sobrecargar significa definir nuevos métodos con parámetros distintos para ampliar las funcionalidades del método original, manteniendo la calidad en el código, reutilizando las funciones, sin extender la cantidad de líneas en nuestro programa.

¿Cómo funciona la Sobrecarga de métodos en Java?

Es posible porque Java nos permite utilizar la sobrecarga, y la ventaja principal de esta es la flexibilidad a la hora de usar un método ya creado, pero con diferente tipo de datos, para obtener otro resultado.

Dependiendo de los tipos y la cantidad de argumentos, Java puede identificar cuál de los métodos existentes debe utilizar.

Esto significa que para sobrecargar una función o método, al llamarla debemos cambiar el tipo y / o número de argumentos, este proceso se conoce como method overloading.

La importancia de la sobrecarga radica en poder relacionar los métodos a través de un nombre común, aunque cumplan distintas funciones.

Ejemplo de sobrecarga de métodos en Java

public class Coche{
   //Atributos
   String marca;
   int año;

   //Métodos
   //Método Constructor
   public Coche(String marca){
       this.marca = marca;
   }

   // Método Constructor Sobrecargado
   public Coche(String marca, int año){
       this.marca = marca;
       this.año = año;
   }

   // Método modelo
   public void modelo(){
       System.out.println("La marca es  "+marca+", y no tiene modelo");
   }

   // Método modelo sobrecargado
   public void modelo(String modelo){
       System.out.println("La marca es  "+marca+", y el modelo es de  " +modelo);
   }
}



public class Main {
   public static void main(String [] args) {
       //Creamos dos objetos coche y utilizamos el método modelo

       //Utilizamos el primer constructor
       Coche coche1 = new Coche( "Mercedes");

       //Utilizamos el primer método
       coche1.modelo();

       //Uso del constructor sobrecargado
       Coche coche2  = new Coche("Fiat", 2009);

       //Uso del método sobrecargado
       coche2.modelo("Sandero");
   }
}

Qué debemos tener en cuenta para sobrecargar un método en Java:

  • Se debe cambiar la lista de argumentos.
  • Se puede cambiar el tipo de retorno.
  • Puede ser sobrecargado en la misma clase o en una subclase.

Pero no solo podemos sobrecargar métodos o funciones normales, también podemos sobrecargar métodos Constructores, de hecho es esto lo más común.

Si tenemos un método constructor con tres parámetros, las declaraciones que hagamos de nuestros objetos precisarán que les pasemos tres parámetros, pero tal vez, necesitemos que algún objeto tenga una cantidad distinta de parámetros, eso lo solucionamos aplicando sobrecarga al constructor. 

No debemos confundir sobrecarga con sobreescritura, la diferencia fundamental entre estos dos conceptos es que la sobrecarga no implica herencia, aunque puede haberla y la sobreescritura sí.

La condición para el uso de sobrecarga de métodos, consiste en que no debe haber dos de ellos con el mismo número y tipo de parámetros.

Para dar un cierre a la idea del uso de sobrecarga de métodos, resta decir que una sobrecarga de funciones o métodos manejados dentro de la misma clase, nos pone de cara al concepto de Polimorfismo por sobrecarga, que es la capacidad que puede tener una clase para determinar su comportamiento dependiendo de qué método sobrecargado use.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: