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