Java:切换2个方法参数(不同类型)以使用重载

Java:切换2个方法参数(不同类型)以使用重载,java,overloading,Java,Overloading,(抱歉英语不好) 嗨,我是一名高中生,我自学了一点Java。 我的老师问你是否可以用相同的参数写两个方法。例: public void method (String arg1, int arg2){ } public void method(int arg1, String arg2){ } 。。 我说是的,老师说我不知道过载意味着什么,但我测试了一下,它成功了,然后她说“JDK有一个bug”,她对我很生气 请给我一个超级完整的问题。重载允许不同的方法具有相同的名称,但不同的签名,其中签名可

(抱歉英语不好) 嗨,我是一名高中生,我自学了一点Java。 我的老师问你是否可以用相同的参数写两个方法。例:

public void method (String arg1, int arg2){
}

public void method(int arg1, String arg2){
}
。。 我说是的,老师说我不知道过载意味着什么,但我测试了一下,它成功了,然后她说“JDK有一个bug”,她对我很生气


请给我一个超级完整的问题。

重载允许不同的方法具有相同的名称,但不同的签名,其中签名可能因输入参数的数量、输入参数的类型或输入参数的顺序而不同。

如果您谈论的是同一类上的方法,这在Java中是可能的,并且是合法的:

public class Test {

    public static void main(String[] args) {
        Test test = new Test();

    }

    public void method (String arg1, int arg2){
    }

    public void method(int arg1, String arg2){
    }
}
这是因为两个方法的名称相同,但参数的类型不同,因此对于Java有两种不同的方法。

如中所述:

Java可以区分具有不同方法签名的方法

在同一页上,“方法签名”定义为

方法声明的两个组件包括方法签名、方法名称和参数类型

由于参数类型是一个列表,因此它们也有固定的顺序(与集合不同)

因此,具有相同类型(但顺序不同)的两个参数列表被视为不同的参数类型列表,从而允许您声明具有相同名称的两个方法和这两个参数类型列表,而不会导致编译时错误


编辑:有关更多详细信息,请参阅。

这是否回答了您的问题?只要参数不是同一类型,就可以切换它们以更改方法签名。。。例如,如果它们都是
String
s,你就不能……也许可以看看。权力的第一条规则:永远不要超过大师。@AndreaD'Adamo可能会帮助……Ty找到答案。这就是我要找的