静态绑定与动态绑定
程序员文章站
2024-03-21 12:05:34
...
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.
区别:
1.静态绑定发生在编译时期,动态绑定发生在运行时
2.变量都使用静态绑定,使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根据运行时的对象进行动态绑定。
3.重载(Overload)的方法使用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。
实例:
public class father {
public String name ="father";
public void say(){
System.out.println("father");
}
}
public class son extends father {
public String name ="son";
public void say(){
System.out.println("son");
}
}
测试:
public static void main(String[] args) {
father f2 = new son();
System.out.println(f2.name);
f2.say();
}
输出:
father
son
可见,变量是静态绑定,方法是动态绑定。
上一篇: iOS - 制作Bundle资源文件包以及正确访问
下一篇: 虚函数:多态的实现原理