java中调用方法的过程如下:
1)编译器查看对象的声明类型和方法名,假设为C类型,名字为f,列举所有类C中名为f的方法和超类中所有访问属性为public且名为f的方法
2)根据传递的参数类型进行方法的选择,这个过程称为重载解析,如果编译器没有找到参数类型匹配的方法,或者经过类型转换后有多个方法与之匹配,则报错
3)与动态绑定对应的静态绑定,指的是private、static、final方法的调用
4)在第2)步中的搜索过程如下:
虚拟机为每个类创建一个方法表,其中列出所有方法的签名和实际调用的方法,之后调用直接查找方法表进行调用。