多态原理

普通成员方法需要在运行时才能确定具体的内容,所以虚拟机需要调用 invokevirtual 指令在执行 invokevirtual 指令时,经历了以下几个步骤

  • 先通过栈帧中对象的引用找到对象
  • 分析对象头,找到对象实际的 Class
  • Class 结构中有 vtable(虚方法表——在类加载的链接阶段就已经根据方法的重写规则生成好了)
  • 查询 vtable 找到方法的具体地址
  • 执行方法的字节码
posted @ 2023-05-27 22:39  小陈code  阅读(11)  评论(0)    收藏  举报