Metodos Virtuales en Java

“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");
    }
}

Enter fullscreen mode Exit fullscreen mode

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");
    }
}

Enter fullscreen mode Exit fullscreen mode

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();

    }

Enter fullscreen mode Exit fullscreen mode

al final obtenemos.

An Elephant swiming
A hippo swiming
BUILD SUCCESSFUL (total time: 1 second)

Enter fullscreen mode Exit fullscreen mode

Gracias por tomarte el tiempo para leer. Saludos Cordiales 🙂

原文链接:Metodos Virtuales en Java

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容