java中的多态

参考:https://www.liaoxuefeng.com/wiki/1252599548343744/1260455778791232

什么是多态?多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。

在继承出现复写的时候,如下程序所示为什么会打印Test2.app。根据打印的结果可得出结论:Java的实例方法调用是基于运行时的实际类型的动态调用,而非变量的声明类型。这个非常重要的特性在面向对象编程中称之为多态。

多态只有在运行的时候才能确定调用的子类的方法

注意!!!!!静态方法只和左边的引用类型有关,不存在多态的情况

public class Main {
    public static void main(String[] args) {
       Test1 p = new Test2();
        p.app(); // 应该打印Test2.app,为什么不是Test1.app
    }
}
class Test1 {
    public void app() {
        System.out.println("Test1.app");
    }
}
class Test2 extends Test1 {
    public void app() {
        System.out.println("Test2.app"); } }                                    
posted @ 2019-12-25 22:09  lipu1993  阅读(82)  评论(0编辑  收藏  举报