【问题标题】:Java: switching 2 methods parameter(different type) to use overloadingJava:切换2个方法参数(不同类型)以使用重载
【发布时间】:2020-06-02 13:04:42
【问题描述】:

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

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

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

.. 我说是的,老师说我不知道​​重载是什么意思,但我测试了它,它工作了,然后她说“JDK有一个错误”,她生我的气。

我需要一个超级完整的问题。

【问题讨论】:

标签: java overloading


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果你在谈论同一个类的方法,在 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,有两种不同的方法。

    【讨论】:

      【解决方案3】:

      official Oracle Java tutorial中提到的:

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

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

      方法声明的两个组成部分包括方法签名——方法的名称和参数类型。

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

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

      编辑:有关更多详细信息,请参阅Java Language Specification, chapter 8.4.2

      【讨论】:

      • 回答问题。这就是我一直在寻找的
      猜你喜欢
      • 2014-10-10
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多