- 此问题在此处已有答案**:
(13个答案)
19小时前关门了。
下面的代码是方法重载或重写的示例吗?
我从超类继承了一个方法到子类,子类有main
方法,但是很少有网站显示重载方法应该只在父类中重新定义,但是我没有这样做。
class overload
{
public static void sum(int a, int b, int c)
{
System.out.println("sum="+(a + b + c));
}
}
class Main extends overload
{
static void sum(int a, int b)
{
System.out.println("sum="+(a+b));
}
public static void main (String s [])
{
sum(1,2);
sum(1,2,3);
}
}
1条答案
按热度按时间olhwl3o21#
是的,这是超载:它提供了两个同名但签名不同的方法。
(Note这里
main
方法的存在是无关紧要的,如果没有它,您的代码仍然是重载的一个例子。)为了增加一点复杂性,覆盖 * 不能 * 发生在静态方法上。子类可以声明一个静态方法,它与超类中的一个方法具有相同的签名,而不覆盖任何东西--因为当调用静态方法时,没有对象可以用来选择要调用的实现。这不是覆盖 * 或 * 重载的情况。