Sobre carga
En la parte anterior, ya hemos utilizado la sobrecarga en la clase Person
ya que tenía tres constructores. Ese es un ejemplo simple. La sobrecarga es una característica que permite que una clase tenga más de un método con el mismo nombre. De esta manera, podemos manejar diferentes situaciones y no nos confundiremos. Típicamente, hay tres maneras de lograr la sobrecarga:
- Diferente número de parámetros
- Diferentes tipos de parámetros
- Diferente orden de diferentes tipos de parámetros
Ejemplo:
Escriba el siguiente código en el archivo /home/labex/project/overloadingTest.java
:
public class overloadingTest{
public static void main(String[] args){
overloadingTest test = new overloadingTest();
System.out.println("add(10,20)= " + test.add(10,20));
System.out.println("add(10,20,30)= " + test.add(10,20,30));
System.out.println("add(5.5, 10.5)= " + test.add(5.5f, 10.5f));
test.printInfo(1, "an error!");
test.printInfo("another error!", 2);
}
// este método tiene dos parámetros int, devuelve un entero
int add(int a, int b){
return a+b;
}
// este método tiene tres parámetros int, devuelve un entero
int add(int a, int b, int c){
return a+b+c;
}
// este método tiene dos parámetros float, devuelve un número float
float add(float a, float b){
return a+b;
}
// este método tiene un parámetro string y un parámetro int, no devuelve nada
void printInfo(String str, int code){
System.out.println("Code: " + code + "\nMessage: " + str);
}
// este método tiene un parámetro int y un parámetro string, no devuelve nada
void printInfo(int code, String str){
System.out.println("Code: " + code + "\nMessage: " + str);
}
}
Salida:
Ejecute el archivo overloadingTest.java
usando los siguientes comandos:
javac /home/labex/project/overloadingTest.java
java overloadingTest
Ver la salida:
add(10,20)= 30
add(10,20,30)= 60
add(5.5, 10.5)= 16.0
Code: 1
Message: an error!
Code: 2
Message: another error!