这些方法调用的行为由Java语言规范(参见8.4.9节)规定和描述。
调用方法时(第15.12节),实际参数(和任何显式类型参数)的数量以及参数的编译时类型在编译时用于确定将被调用的方法的签名(
§15.12.2)。如果要调用的方法是实例方法,则将在运行时使用动态方法查找(第15.12.4节)确定要调用的实际方法。
在您的示例中,Java编译器确定了您要在其上调用方法的实例的编译类型上最接近的匹配项。在这种情况下:
A.method(AX)
最接近的方法来自类型A,带有签名
A.method(A)。在运行时,动态分配是对A 的 实际 类型(它是AX的实例)执行的,因此这是实际被调用的方法:
AX.method(A)



