Java 动态绑定 静态绑定

静态绑定:使用编译类型的对象引用

动态绑定:使用运行类型所指的对象

 

其主要区别是方法是否可以被覆盖(注意和重载的区别),若可以覆盖,则可请求动态绑定。Java语言和虚拟机中,动态绑定是缺省的,否则可使用关键字final声明静态绑定。

除了final使用静态绑定,还有两种特殊情况

1. 类方法(static method,不能被继承,也就不能被覆盖)

2. 包含关键字super的方法(直接显示指出访问其父类的构造函数,方法和变量,也不存在覆盖)

你可能感兴趣的:(java)