Java中动态绑定是什么意思?

将一个方法调用同一个方法主体连接到一起称为“绑定”(Binding)。如果在程序运行之前执行绑定,由编译器决定方法调用的程序,称为“早期绑定”或“静态绑定”。如果绑定过程在程序运行期间进行,以对象的类型为基础,则称为“后期绑定”或“动态绑定”。
如果一种语言实现了后期绑定,同时必须提供一些机制,可以在运行期间判断对象的实际类型,并分别调用适当的方法,即编译器此时依然不知道对象的类型,但方法调用机制能够自己去调查,找到正确的方法主体。Java方法的执行主要采用动态绑定技术,在程序运行时,虚拟机将调用对象实际类型所限定的方法。
Java方法在调用过程中主要经历了以下过程。
(1)编译器查看对象变量的声明类型和方法名,通过声明类型找到方法列表。
(2)编译器查看调用方法时提供的参数类型。
(3)如果方法由private、static和final修饰或者是构造器,编译器就可以确定调用哪一种方法,即采取静态绑定技术。如果不是上述情况,就使用动态绑定技术,执行后续过程。
(4)虚拟机提取对象的实际类型的方法表。
(5)虚拟机搜索方法签名。
(6)调用方法

猜你喜欢

转载自blog.csdn.net/weixin_42470710/article/details/85934682