定义
将方法调用与方法主体关联起来称作绑定;当子类重写父类方法,调用时确定是调用父类方法还是子类方法的过程就是绑定。这一过程分为前期绑定和后期绑定。
前期绑定
在程序执行前进行绑定称为前期绑定,一般由编译器和连接程序实现,C中仅有前期绑定。
而java中static方法、final方法和private方法使用的前期绑定。也就是说当一个方法无法被重写时就使用前期绑定。
后期绑定
在程序运行时根据对象的类型进行绑定,后期绑定也叫动态绑定或者运行时绑定。
编译器不知道对象类型,但是方法调用机制能找到正确的方法体,并加以调用。
动态绑定过程:
1、虚拟机提取对象的实际类型方法表。;
2、搜索方法签名;
3、调用方法。
那怎么知道对象的实际类型呢,那肯定是对象中有相应的类型信息。
一旦知道这个设定,我们就能编写只跟基类进行交互的程序代码了,并且这些代码对所有的导出类都能正确运行。