重载问题请教

美团面试遇到的一个问题,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,请各位大佬指教!!!
#笔试题目##美团#
全部评论
直接传入参数 后面加个L指明是long就行
点赞 回复
分享
发布于 2020-09-17 22:57
类型不同,一个是基本类型,一个是对象,可以重载
点赞 回复
分享
发布于 2020-09-17 23:16
滴滴
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务