invokeinterface:调用接口中的方法,实际上是在运行期决定的,决定到底调用实现该接口的哪个对象的方法。 invokestatic:调用静态方法。【重要】 invokespectial:调用自己的私有方法、构造方法(<int>)以及父类的方法。 invokevirtual:调用虚方法,在c++中是存在虚方法这个概念的,但是Jav
invokevirtual字节码指令的多态查找流程(执行期) 1、找到操作数栈顶的第一个元素,它所指向对象的实际类型 2、在实际对象中找对应的方法(test()方法),检查访问类型是否可以访问,找到了就调用。如果没找到,继续往上找。 比较方法重载(overload)与方法重写(overwrite),我们可以得到这样的结论 方法重载是静态的,是编译...