Sobrecarga
En Java se permite tener dos o más métodos con el mismo nombre dentro de una misma clase. Esto se denomina sobrecarga de métodos (method overloading). Esto no tiene nada que ver con el valor devuelto, sólo con los parámetros. La forma de distinguir los métodos sobrecargados es mediante la lista de parámetros, que deben ser distintos, ya sea en número o en tipo.
Los métodos sobrecargados pueden devolver diferentes tipos, aunque estos no sirvan para distinguir una función sobrecargada de otra.
void crecer(double incremento) {
estatura += incremento;
}
// método sobrecargado
void crecer() {
estatura = estatura + 0.01;
}
Ejemplo de la clase Persona
class Persona{
String nombre;
int edad;
double estatura;
void cumplirAños(){
edad++;
}
// Método 1
void crecer(){
estatura = estatura + 0.01;
}
// Método 2
void crecer(double incremento){
estatura += incremento;
}
String saludar(){
return "Hola";
}
}
Cuando llamas al método, Java decide cuál ejecutar según los argumentos que pasas:
Persona p = new Persona();
p.estatura = 1.70;
p.crecer(); // Llamada al método 1
p.crecer(0.05); // Llamada al método 2: 0.05 es un double
p.crecer(1); // Aunque 1 es un int, se realiza una conversión a double y se utiliza el método 2