"Java virtual method" son metodos que una subclase hereda de una clase padre y que pasan a ser sobrescritos dandole un comportamiento polimorfo. Este proceso tambien es comunmente llamado sobreescritura de metodos.
Para que un metodo sea valido para ser sobreescrito no pueden ser de tipo staticos ni finales y como minimo deben tener protected
como modificador de acceso.
Supongamos que tenemos la siguente Clase padre Mammal
public class Mammal {
public void swim() {
System.out.println("A mammal swimming");
}
}
Estas dos subclases Elephant
y Hippo
que heredan de Mammal
y sobreescriben el metodo public void swim()
de la misma.
public class Elephant extends Mammal {
@Override
public void swim() {
System.out.println("An Elephant swiming");
}
}
public class Hippo extends Mammal {
@Override
public void swim() {
System.out.println("A hippo swiming");
}
}
Si ejecutamos el siguente ejemplo podemos ver como obtenemos resultados distintos llamando el mismo metodo de la clase Mammal
cuando asignamos a la variable una nueva instancia de cada subtipo.
...
public static void main(String ...args) {
Mammal mammal = new Elephant();
mammal.swim();
mammal = new Hippo();
mammal.swim();
}
al final obtenemos.
An Elephant swiming
A hippo swiming
BUILD SUCCESSFUL (total time: 1 second)
Gracias por tomarte el tiempo para leer. Saludos Cordiales :)
Top comments (0)