我有一个简短的程序来测试java中的重载方法。这是我的代码:
public static void main(String[] args) {
// TODO code application logic here
// Case 1
f2(5);
// Case 2
char x = 'a';
f2(x);
// Case 3
byte y = 0;
f2(y);
// Case 4
float z = 0;
f2(z);
}
还有我的方法:
public static void prt(String s) {
System.err.println(s);
}
public static void f2(short x) {
prt("f3(short)");
}
public static void f2(int x) {
prt("f3(int)");
}
public static void f2(long x) {
prt("f5(long)");
}
public static void f2(float x) {
prt("f5(float)");
}
这是结果:
f3(int)
f3(int)
f3(short)
f5(float)
我不明白它在案例 2 和 3 中是如何运行的。有什么解释吗?