这就是多态性的工作方式。请考虑以下示例:
A a = new C();a.met(a);
如预期的那样,将调用正确的方法
B#met(...)。对象的方法表不仅仅因为更改存储在其中的变量的类型而改变
Object,因为an
Object和它的方法之间的绑定比存储类型和与其相关的方法之间的绑定更强大。第二种类型起作用,因为输入的类型被强制转换为该类型,
A因此该方法将其识别为
A(输入存储的
Object类型比该类型具有更强的绑定)。

这就是多态性的工作方式。请考虑以下示例:
A a = new C();a.met(a);
如预期的那样,将调用正确的方法
B#met(...)。对象的方法表不仅仅因为更改存储在其中的变量的类型而改变
Object,因为an
Object和它的方法之间的绑定比存储类型和与其相关的方法之间的绑定更强大。第二种类型起作用,因为输入的类型被强制转换为该类型,
A因此该方法将其识别为
A(输入存储的
Object类型比该类型具有更强的绑定)。