Curso de Java
Sobrecarga y sobreescritura
La sobreecarga y la sobreescritura son dos mecanismos polimórficos.
Recordando la definición de polimorfismo: es la capacidad que tienen los objetos de una clase de ofrecer respuesta distinta en función de los parámetros (diferentes implementaciones) utilizados durante su invocación.
Esto también se aplica a la sobrecarga y la sobreescritura.
| Sobrecarga | Sobreescritura |
|---|---|
| Los parámetros de entrada deben cambiar | Los parámetros de entrada no deben cambiar |
| El tipo de dato devuelto puede cambiar | El tipo devuelto no debe cambiar |
| La accesibilidad puede ser más restrictiva que la del método original | La accesibilidad no será más restrictiva que la del método original |
| Si el método original es static, el método que hace el override, tambień debe serlo |
public class Main{
public static void main(String[] args) {
Hijo.sobreEscritura("Se bienvenido ", "Pablo");
Hijo.sobreCarga( 3 );
}
}
class Papa{
public static void sobreEscritura(String txtBienvenida, String nombre){
System.out.println(txtBienvenida + nombre);
}
public static void sobreCarga(String txtDespedida, String nombre){
System.out.println(txtDespedida + nombre);
}
}
class Hijo extends Papa {
public static void sobreEscritura(String txtBienvenida, String nombre){
System.out.println(txtBienvenida + "......" + nombre);
}
protected static int sobreCarga(int codigoDespedida){
System.out.println(codigoDespedida);
return 4;
}
}