【发布时间】:2015-09-16 06:03:14
【问题描述】:
public class Roshni {
void sum(int i, int j) {
System.out.println("inside 1st i = " + i);
}
void sum(short i, int j) {
System.out.println("inside 2nd i = " + i);
}
public static void main(String s[]) {
Roshni r = new Roshni();
r.sum(5, 5);
}
}
现在我的问题是为什么 sum(int i,int j) 被调用,即使第一个命令行参数 5 在 short 范围内,而我像这样 r.sum(Short(5),5 );然后它调用 sum(short i,int j)
【问题讨论】:
-
当您提出问题时,请花时间格式化您的代码 - 如果缩进它会更易读。此外,如果没有第二个参数,并且如果
sum是static方法,该示例会更简单。 -
谢谢约翰,会照顾好
-
@user4188607 - 谢谢乔恩:P
-
我可以知道您为什么建议将 sum 方法保留为静态 Jon
-
不需要它是非静态的,因为没有使用状态,并且您没有提到覆盖子类中的方法的要求。它只是避免了创建
Roshni的需要。
标签: java overloading