public class B {
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 = -20;
long z = 7;
go(y);
go(z);
}
}
怎么不同的JDK, 这段代码有能编译过的,有能编译不过的呢? 结果也不一样。
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 = -20;
long z = 7;
go(y);
go(z);
}
}
怎么不同的JDK, 这段代码有能编译过的,有能编译不过的呢? 结果也不一样。
解决方案 »
- 还是数学+算法没有学好,这个简单的JAVA程序该怎么做?请高手帮忙解决下燃眉之急。
- FileDialog的一个疑问
- 关于流的一个问题
- TCP/IP问题
- 一个百思不得其解的报错,高手帮忙看下,分不够可再给
- JEditorPane 如何设置光标在指定行?
- s.getClass().getName().compareTo("java.lang.String") == 0和s instanceof String判断类型时在性能或内部实现是有什么区别
- 有人买过《JAVA 2 API大全》么?210大元那本
- 请教~~~!winme中怎么配置jdk的环境变量
- 谁有IntelliJ IDEA 2.6的sn or crack?
- 急!急!!!!这个画图程序怎么改?
- 程序界面的刷新问题
这是 JDK1.5以后的自动封装特性
JDK1.5之前的版本需要
如2楼那样
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 = -20;
long z = 7;
int w = 6;
short q = (short) -20;
go(y);
go(z);
go(w);
go(q);
}
}
重新修改后, 为什么都跑int呢? 结果是
int
Long
int
int