当父类具有带有2个参数的add
方法时,如果我们在子类中添加带有3个参数的新add
方法,我们应该将其称为过载吗?
提前致谢。
答案 0 :(得分:6)
是的,因为带有两个参数的方法是由子类继承的,所以带有三个参数的方法被称为重载方法。
class A
add(param1, param2)
class B
add(param1, param2) <-- inherited
add(param1, param2, param3) <-- overloading the above method
Overriding and Hiding Methods上的官方记录引用:
注意:在子类中,可以重载从超类继承的方法。这种重载方法既不隐藏也不覆盖超类方法 - 它们是新方法,对于子类是唯一的。
(正如您可能已经想到的那样,具有三个类的方法不是最重要的方法。)
答案 1 :(得分:5)
是的,这是超载。即使方法与具有两个参数的方法属于同一类,它也会重载。
请注意,当存在不同数量的参数(并且没有varargs参数)时,重载相当简单。当你的方法具有相同数量的参数时,它会变得更加复杂 - 在这一点上,编译器必须从适用的候选方法中选择“最佳”方法。
另请注意,重载是在编译时确定的,而 override 的执行是在执行时根据调用该方法的对象的实际类型确定的。
答案 2 :(得分:3)
重载是指方法具有相同名称但具有不同签名的情况。 覆盖 - 当方法具有IDENTICAL NAMES和IDENTICAL SIGNATURE时。
答案 3 :(得分:2)
肯定是一个重载和一个很好的继承功能。
答案 4 :(得分:1)
如果方法名称已经存在但参数不同,则是,这是重载。
答案 5 :(得分:0)
是的...即使方法位于同一个类中,它也是重载方法。
ps:我假设具有三个参数的新方法具有相同的名称并且返回类型