当前位置: 首页 > 知识库问答 >
问题:

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

薛文斌
2023-03-14

我是一名高中生,我自学了一点Java。我的老师问你是否可以写两个参数互换但相同的方法。例如:

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

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

我说是的,老师说我不知道超载是什么意思,但我测试过了,它工作了,然后她说“JDK有一个错误”,她对我发火了。

我需要一个超级完整的答案。

共有3个答案

巴帅
2023-03-14

如果您正在谈论同一类上的方法,那么在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有两个不同的方法。

何星鹏
2023-03-14

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

顾均
2023-03-14

正如官方甲骨文Java教程中提到的:

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

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

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

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

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

编辑:更多细节请参考Java语言规范,第8.4.2章。

 类似资料:
  • …我说是的,老师说我不知道重载是什么意思,但我测试了它,然后她说“JDK有一个bug”,她对我很生气。 请我需要一个超级和完整的问题。

  • 我在Java中有两个几乎相同的方法。唯一的区别是它们有不同的参数类型。它们使用泛型并返回输入参数的类型T。我怎样才能摆脱重复的代码?下面是我的两个方法。最后,它们都使用不同的类型调用Spring。否则,方法是相同的。

  • 我想这样设置参数的类型: 当我尝试这样做时,会引发错误:NameError:名称'Tree'未定义

  • 问题内容: 我正在写一个方法,该方法应接受不共享除父对象以外的父类型的两种类型之一的对象作为其参数。例如,类型为Dreams和Garlic。您可以同时和。我想有一个方法,可以将Dreams和Garlic都接受为其参数。 Garlic和dreams都是某些库的一部分,因此让它们实现ICrushable接口(以便我可以编写)是不可行的。 我的方法主体很长,因此重载将意味着复制代码。丑陋。我确定我可以使

  • 本文向大家介绍maven profile自动切换环境参数的2种方法详解,包括了maven profile自动切换环境参数的2种方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 痛点: 在java开发的过程中,我们经常要面对各种各样的环境,比如开发环境,测试环境,正式环境,而这些环境对项目的需求也不相同。 在此之前,我们往往需要手动去修改相对应的配置文件然后打成war,才能部署到相应的环境上。

  • 问题内容: 一个激励人的例子: 实施各种调度“策略”,对“作业”列表进行排序。 一种非常简单的策略是首先执行最短的作业(不考虑其权重/优先级)。 嗯,这种策略只不过是对job.length进行排序,因此让我们使用sort包。定义一个自定义类型,并实现sort.Interface … 好了,现在回到我们的简单策略… 嗯… 问题答案: 首先, 即使您使用like ,也看不到任何定义 。 我认为您的意思