在具有相同数量的参数但返回类型不同的java中重写方法

时间:2016-11-10 10:37:53

标签: java methods return override

class TestOverride{
    public int testVlaue(int a,int b){
        return a + b;
    }

    public float testValue(int x,int y){
        return x + y;
    }

    public float testValue(float x){
        return x;
    }
}
public class CodeTester{
    public static void main(String a[]){
        TestOverride objTest = new TestOverride();
        System.out.println(objTest.testValue(2));
        System.out.println(objTest.testValue(2,3));
    }
}

为什么输出如下?

2.0
5.0

它还可以采用返回类型int而不是float来返回值5?

1 个答案:

答案 0 :(得分:-1)

如果您想进行重载,则必须更改其中一个点的方法签名:

  1. 参数类型。
  2. 参数数量。
  3. 方法中声明的参数顺序。
  4. 返回类型不被视为方法签名之一,因此如果您有两个具有相同名称和不同返回类型的方法,则会出现编译错误,不允许这样做。

    最后,在您的代码中,您有两个具有不同名称的方法,因此没有编译错误,您调用返回float的方法

    在vl和va中看到不同的

    testVlaue
      测试值

    你打电话给System.out.println(objTest.testValue(2,3));第二个