重载问题请教
美团面试遇到的一个问题,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,请各位大佬指教!!!
#笔试题目##美团#