方法重载取决于每个参数的位置?
Method overloading depends on position of each argument?
我知道在方法中过度加载
- 参数数量应该不同
- 参数的数据类型应该不同
return类型应该不同
public void test( int i , String s)
{//代码}
public void test(String s, int i)
{//代码}
这段代码编译得很好..
我想知道这涵盖在哪个选项下..
我还应该将此视为参数位置的变化或不同类型的参数吗?
参数的数据类型不同。
Java 认为 int then String 与 String then 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)
。
我知道在方法中过度加载
- 参数数量应该不同
- 参数的数据类型应该不同
return类型应该不同
public void test( int i , String s) {//代码}
public void test(String s, int i) {//代码}
这段代码编译得很好.. 我想知道这涵盖在哪个选项下.. 我还应该将此视为参数位置的变化或不同类型的参数吗?
参数的数据类型不同。
Java 认为 int then String 与 String then 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)
。