刚学方法重载就遇到了问题,不知道哪错了

img


输入两个int值就会报错,但输入一个double一个int或者一个int一个double或者三个int值都不会报错。这是为啥啊,搞不懂

因为double类型比int类型大,int可以隐式的转换成double但double没法隐式的转换成int
所以当你其中一个参数是double时,就不会匹配错
而如果输入两个int,那么三个函数其实都匹配

img


显然是因为你调用方法时,传递的参数适配了两个重载方法,java不知道你具体调用哪个

解决:
明确指定传入参数是什么类型:
例如: bean.calculate(1,2d); 调用的是 calculate(int a, double b);
bean.calculate(1d,2); 调用的是 calculate(double a, int b);
直接写个 (1,2)不知道哪个是浮点的参数

原来是方法单词拼写错了一个字母

img