方法重载取决于每个参数的位置?

时间:2016-02-20 16:30:33

标签: java polymorphism overloading

我知道方法超载

  • 参数数量应该不同
  • 参数的数据类型应该不同
  • 返回类型应该不同

    public void test(int i,String s) {//代码}

    public void test(String s,int i) {//代码}

此代码编译好..  我想知道这涵盖了哪个选项.. 我还应该将其视为参数位置或不同类型参数的变化吗?

1 个答案:

答案 0 :(得分:0)

参数的数据类型不同。

Java看到int然后String与String完全不同,然后是int,它也应该如此。您和我都将您的示例视为参数的重新排列,Java将其视为不同的数据类型。

我将其视为重新排列,因为我可以看到名称(名称与Java无关,但对我来说很重要)。如果我稍微改变你的代码,我会看到它更像Java,参数数据类型的变化......

public void test(int apples, String appleType) {//code}

public void test(String streetName, int cars) {//code}

现在两者之间存在明显差异。名称可以是任何名称,但重要的是每个参数的数据类型都已更改。

附加说明,为了保持一致性,请尝试对参数类型进行常见排列。避免从某些方法中的(int a, String b)转到其他方法中的(String c, int d)