public class Test {
void m(String x){System.out.println("String "+x);}
void m(int x){System.out.println("int "+x);}
void m(Object x){System.out.println("Object "+x);}
void m(char x){System.out.println("char "+x);}
public static void main(String arg[]){
Test t = new Test();
t.m(null);
char x ='a';
t.m(x);
}
}
输出结果是什么??
答案:输出结果是String null
char a
如果把上面的类改为如下样子:去掉参数为String和char类型的重载函数
public class Test {
void m(int x){System.out.println("int "+x);}
void m(Object x){System.out.println("Object "+x);}
public static void main(String arg[]){
Test t = new Test();
t.m(null);
char x ='a';
t.m(x);
}
}
输出结果是什么??
答案:输出结果是Object null
int a
=================
可以看出能够自动转换,char转为int,null转为String然后专为object
本文探讨了Java中方法重载的原理及其如何通过自动类型转换选择合适的方法实现。展示了不同情况下方法调用的实际输出,并解释了为何特定类型如null和char会触发特定方法的调用。
856

被折叠的 条评论
为什么被折叠?



