Java静态绑定
在程序执行以前已经绑定(即在编译过程中就知道这个方法到底是哪个类中的方法)。
Java中的方法只有final、static、private修饰的的方法和构造方法是静态绑定的。
此图可以看出重写final,static 的方法会编译不通过,private修饰方法虽然没有编译不通过但是可以经过测试发现对应对象执行对应方法
Java动态绑定
在运行期间根据对象头指向的类型进行绑定。
动态绑定的过程:
在堆中 每一个对象存了一个类型的指针指向它的类对象,先去类对象查找 方法,如果没有找到 类对象会有指向父类对象的指针,去父类对象找
找到之后
1 | public class Father { |
运行结果
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/06/10/java/动态绑定/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!