Al igual que el lenguaje C++, Java permite metodos sobrecargados (overloaded), es decir, métodos distintos que tienen el mismo
nombre, pero que se diferencian por el número y/o tipo de los argumentos. A la hora de llamar a un método sobrecargado, Java sigue unas reglas para
determinar el método concreto que debe llamar:
Diferente de la sobrecarga de métodos es la redefinición. Una clase puede redefinir un método heredado de una superclase. Redefinir un método es dar una nueva definición. En este caso el método debe tener exactamente los mismos argumentos en tipo y número que el método redefinido; para conocer estos metodos redefinidos y sobrecargados dejamos este curso java presencial y 100% práctico.
Los siguientes métodos son sobrecargas legales del método cambiarTamano():
public void cambiarTamano(int tamano, String nombre){}
public int cambiarTamano(int tamano, float patron){}
public void cambiarTamano(float patron, String nombre) throws IOException{}
Lo que define qué método es el que se va a llamar son los argumentos que se envían al mismo durante la llamada. Si se invoca a un método con un
String como argumento, se ejecutará el método que tome un String como argumento, si se manda a llamar al mismo método pero con un float como
argumento, se ejecutará el método que tome un float como argumento y así sucesivamente. Si se invoca a un método con un argumento que no es
definido en ninguna de las versiones sobrecargadas entonces el compilador arrojará un mensaje de error, para aprender esto de manera práctica
recomendamos este
curso de java
donde aprenderás de la mano de un experto.
Ejemplo de una clase con un método sobrecargado:
public class Sobrecarga {
public void Numeros(int x, int y){
System.out.println("Método que recibe enteros.");
}
public void Numeros(double x, double y){
System.out.println("Método que recibe flotantes.");
}
public void Numeros(String cadena){
System.out.println("Método que recibe una cadena: "+ cadena);
}
public static void main (String... args){
Sobrecarga s = new Sobrecarga();
int a = 1;
int b = 2;
s.Numeros(a,b);
s.Numeros(3.2,5.7);
s.Numeros("Monillo007");
}
}
Al ejecutar el código anterior obtendremos lo siguiente:
Método que recibe enteros.
Método que recibe flotantes.
Método que recibe una cadena: Monillo007
Diseño de paginas Web Grupo Codesi