静态绑定和动态绑定
2019-02-27 本文已影响0人
lenny611
绑定:指的是一个方法的调用与方法所在的类(方法主体)关联起来。(其实就是具体调用哪个方法)
在java中,两种绑定方式:一种是静态绑定(也称早期绑定 ),另一种是动态绑定(也称后期绑定)
两种绑定的区别:
1.静态绑定发生在编译时期,动态绑定发生在运行时期(java中的绑定大部分都是动态绑定)
2.使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根据运行时的对象进行动态绑定。
3.静态绑定使用类信息来完成,而动态绑定则需要使用对象信息来完成。
4.重载(Overload)的方法使用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。
虚方法:java里所有被overriding的方法都是virtual的,所有重写的方法都是override的。