动态绑定(后期绑定)是指:在程序运行过程中,根据具体的实例对象才能具体确定是哪个方法。
Java在JVM的运行过程中,会把类的类型信息、static属性和方法、final常量等元数据加载到方法区,这些在类被加载时就已经知道,不需要对象的加载就能访问的,这就是静态绑定的内容。
那么需要等到创建出来,使用时根据堆中的实例对象的类型才进行取用的就是动态绑定的内容。
那么在向上转型和向下转型两种情况下
向上转型时,用父类引用执行子类对象,可以使用父类中已经定义了被子类重写了的方法,但是不能调用子类中新增的方法;
向下转型时,用子类引用执行父类对象,可以得到子类中新增的所有方法(包含了父类中的方法);