重载函数会抛出float参数

时间:2016-11-05 09:58:44

标签: java overloading

这是我的Java程序代码。我为数据类型addint重复了float函数,但调用add(2.3, 2.4)引发了错误,而不是调用add(float, float)

public class Main {

    public static void main(String[] args) {

        // This calls add(int, int) as expected
        System.out.println(add(2,4));

        // This call throws an error
        System.out.println(add(2.3,3.4));

    }

    public static int add(int a, int b){
        return (a + b);
    }

    public static float add(float a, float b){
        return (a + b);
    }

}

2 个答案:

答案 0 :(得分:1)

您正确定义了重载方法!

你错了的是你调用方法的方式。您正在呼叫add(2.3,3.4)2.33.4都是double。这就是为什么他们无法直接进入接受花车的方法。

"什么?为什么他们会翻倍?"你可能会问。

默认情况下,没有.e的所有数字文字都被视为int。所有包含.e之一或两者的数字文字都被视为double

要创建浮动文字,请在数字末尾添加f。即这些都是花车:

1f
1000f
1.1f
-9f
1e99f

所以你应该像这样调用你的方法

add(2.3f,3.4f)

答案 1 :(得分:0)

addintfloat个方法,而文字2.3的类型为double。有两种方法可以解决这个问题:

  1. 使用float文字,即2.3f3.4f(注意f后缀。)

  2. add s。

  3. 定义double方法