logo头像

生活多彩,尽情享受!

Java方法的静态绑定和动态绑定

一、简介

将一个方法和其所在的类或对象,关联起来叫做方法的绑定。绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)。

二、静态绑定

静态绑定(前期绑定)是指: 在程序运行前就已经知道方法属于那个类,在编译的时候就可以连接到类中,定位到这个方法。
Java中,final、private、static 修饰的方法以及构造函数都是静态绑定。不需要程序运行,不需要具体的实例对象就可以知道这个方法的具体内容。

三、动态绑定

动态绑定(后期绑定)是指:在程序运行过程中,根据具体实例对象才能具体确定是那个方法。

动态绑定是多态性得以实现的重要因素,它通过方法表来实现:每个类被加载到虚拟机时,在方法区保存元素,其中,包括一个叫做方法表(method table)的,表中记录了这个类定义的方法的指针,每个表项指向一个具体的方法代码。如果这个类重写了父类的某个方法,则对应表项指向新的方法代码实现处,从父类继承过来的方法位于子类定义的方法的前面。

四、区分

程序在JVM运行过程中。会把类的类型信息、static属性和方法、final常量等元素加载到方法区,这些在类被加载时就已知到、不需要对象创建就能访问的,就是静态绑定的内容;需要对象创建出来,使用时根据堆中的实例对象的类型才能进行取用的就是动态绑定内容。

文章来源: http: // www.cnblogs.com/ygj0930/p/6554103.html