我在 scjp 准备书中看到了这个问题。
public class Yikes {
public static void go(Long n) {
System.out.println("Long ");
}
public static void go(Short n) {
System.out.println("Short ");
}
public static void go(int n) {
System.out.println("int ");
}
public static void main(String [] args) {
short y = 6;
long z = 7;
go(y);
go(z);
}
}
输出是int Long
。
我将short
数据类型变量传递给重载方法 go。现在 go 也有一个short
数据类型版本。那么怎么会int
被调用呢?这种行为的原因是什么?
我在java中很新。所以请在这里帮助我。