是的,由于具有两个参数的方法由子类继承,因此具有三个参数的方法被称为重载方法.
class A
add(param1, param2)
class B
add(param1, param2) <-- inherited
add(param1, param2, param3) <-- overloading the above method
Run Code Online (Sandbox Code Playgroud)
关于覆盖和隐藏方法的官方记录引用:
注意:在子类中,您可以重载从超类继承的方法.这种重载方法既不隐藏也不重写超类方法 - 它们是新方法,对于子类是唯一的.
(正如您可能已经想到的那样,具有三个类的方法不是最重要的方法.)
是的,这是超载.即使方法与具有两个参数的方法在同一类中,它也会重载.
请注意,当存在不同数量的参数(并且没有varargs参数)时,重载相当简单.当你有相同数量的参数的方法时,它会变得更加复杂 - 在这一点上,编译器必须从适用的候选方法中选择"最佳"方法.
还要注意,在编译时确定重载,而在执行时根据调用该方法的对象的实际类型确定执行哪个覆盖.