重载问题请教
美团面试遇到的一个问题,int,integer是否可以重载?int、long是否可以重载?当传入参数值为1,是执行int的方法还是long的方法?
//int integer long是否有重载效果?重载的是哪一个?
public class Test1 {
public Test1(int a) {
System.out.println("执行的是int方法");
}
public Test1(Integer a) {
System.out.println("执行的是Integer方法");
}
public Test1(long a) {
System.out.println("执行的是long方法");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//int a=100;
Test1 test1=new Test1(21474836490);
}
} 测试结果:
若先定义具体类型的话,比如我先定义我传入的类型为int、Integer、long会有重载效果。但是如果不定义类型直接传值,默认执行的是int的构造方法,如果传的值超过int的范围,这时候就算把int的构造方法去掉也会报超出int范围错误,不知道为什么不能到long,请各位大佬指教!!!
#笔试题目##美团#
查看13道真题和解析