如果您要的话,仍然可以重写重载的方法。
重载的方法就像不同的族,即使它们共享相同的名称。编译器会静态地选择一个具有给定签名的系列,然后在运行时将其分派到类层次结构中最具体的方法。
也就是说,方法分派分两个步骤执行:
- 第一个是在编译时使用可用的静态信息完成的,编译器将为
call
签名发出一个与您当前的方法参数最匹配的签名,该重载方法在调用该方法的对象的声明类型中的重载方法列表中。 - 第二步在运行时执行,给定应该调用的方法签名(上一步,还记得吗?),JVM将把它分派到接收器对象实际类型中最具体的覆盖版本。
如果方法参数类型根本不是协变的,则重载等效于在编译时修改方法名称;因为它们实际上是不同的方法,所以JVM永远不会根据接收者的类型互换分配它们。



