弄清楚如何在对象上应用方法调用非常重要。下面假设要调用 x.f(a),x为类C的一个对象。下面是调用过程:
1、编译器查看对象 x 的声明类型和方法名,x 为C类对象,编译器会列举所有C类的名为 f的方法和其父类中访问属性为public且名为 f 的方法。
2、接下来,编译器将查看调用方法时提供的参数类型,如有完全匹配的则选择这个方法,这个过程被称为重载解析。由于允许类型转换,所以这个过程可能很复杂。
3、如果是private方法、static方法、final方法或构造器,那编译器可以准确找到应调用那个方法,这种调用方式称为静态绑定。
4、当采用动态绑定调用方法时,虚拟机会调用与x 所引用对象实际类型最合适的那个类方法。
Java方法调用
最新推荐文章于 2024-03-29 14:36:20 发布