Java中静态绑定和动态绑定之间的区别
绑定是一种在方法调用和方法实际实现之间创建链接的机制。按照Java中的多态性概念,对象可以具有许多不同的形式。对象形式可以在编译时和运行时解析。如果在编译时解决了方法调用与方法实现之间的链接,则我们将其称为静态绑定;如果在运行时解决了其方法,则将其称为动态绑定。动态绑定使用对象来解析绑定,而静态绑定使用类和字段的类型。
1
基本的
在编译时解决
在运行时解决
2
解决机制
类和字段的静态绑定使用类型
动态绑定使用对象来解析绑定
3
例
重载是静态绑定的一个示例
方法覆盖是动态绑定的示例
4。
方法类型
私有,最终和静态方法和变量使用静态绑定
虚方法使用动态绑定
静态和动态绑定示例
public class FastFood { public void create() { System.out.println("Creating in FastFood class"); } } public class Pizza extends FastFood { public void create() { System.out.println("Creating in Pizza class"); } } public class Main { public static void main(String[] args) { FastFood fastFood= new FastFood(); fastFood.create(); //动态绑定 FastFood pza= new Pizza(); pza.create(); } }