La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferente lista de tipos de parámetros. Java utiliza el número y tipo de parámetros para seleccionar cuál definición de método ejecutar.
También existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores.
Debemos tener en cuenta que no puede haber dos de ellos con el mismo número y tipo de parámetros.
Observemos un ejemplo según lo que vimos de una sobrecarga de métodos:
/* Métodos sobrecargados */ int calculaSuma(int x, int y, int z){ ... } int calculaSuma(double x, double y, double z){ ... } /* Error: estos métodos no están sobrecargados */ int calculaSuma(int x, int y, int z){ ... } double calculaSuma(int x, int y, int z){ ... }
Y ahora observemos una sobrecarga de constructores:
class Usuario4 { String nombre; int edad; String direccion; /* El constructor de la clase Usuario4 esta sobrecargado */ Usuario4( ) { nombre = null; edad = 0; direccion = null; } Usuario4(String nombre, int edad, String direccion) { this.nombre = nombre; this.edad = edad; this.direccion = direccion; } Usuario4(Usuario4 usr) { nombre = usr.getNombre(); edad = usr.getEdad(); direccion = usr.getDireccion(); } }
Al realizar la creación del objeto me permite hacerlo con cualquiera de los tres constructores que posee la clase.