java中有两个同名的方法

Run*_*oro 3 java methods extends

我注意到,如果我有两个具有相同名称的方法,第一个接受SomeObject,第二个接受SomeObject在我调用方法时扩展的对象SomeOtherObject,它会自动使用只接受的方法SomeObject.如果我转换SomeOtherObjectSomeObject,SomeObject则使用接受的方法,即使该对象是instanceof SomeOtherObject.这意味着在编译时选择该方法.为什么?

Mat*_*all 7

这就是Java中方法重载解析的工作原理:在编译时选择该方法.

有关所有丑陋的细节,请参阅Java语言规范§15.12.