ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 重载 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/overloading/](https://javabeginnerstutorial.com/core-java-tutorial/overloading/) 重载方法为您提供了一个选项,可以在类中使用与*相同的方法名称*,但具有*不同的参数*。 ## Java 方法规则中的重载 有一些与重载方法相关的规则。 #### 重载方法 * 必须更改参数列表 * 可以更改返回类型 * 可以更改访问修饰符(更广泛) * 可以声明一个新的或更广泛的受检异常 ###### 方法可以在类或子类中重载。 ## 重载方法示例 ```java //Overloaded method with one argument public void add(int input1, int input2) { System.out.println("In method with two argument"); } //Overloaded method with one argument public void add(int input1) { System.out.println("In method with one argument"); } ``` ## 调用重载方法 在几种可用的重载方法中,调用的方法基于参数。 ```java add(3,4); add(5); ``` 第一个调用将执行第一个方法,第二个调用将执行第二个方法。 ###### 引用类型而不是对象决定调用哪个重载方法,和覆盖方法相反。 感谢 Manoj 指出拼写错误。 ## 方法重载备忘单 * 使用相同的方法名称但使用*不同的参数*称为重载。 * **构造器**也可以重载 * 重载的方法必须设置*不同的*参数。 * 重载的方法**可能**具有不同的返回类型。 * 重载的方法**可能**具有不同的访问修饰符。 * 重载的方法**可能**抛出不同的异常,**更宽或更窄的**没有限制。 * **超类**中的方法也可以在子类中重载。 * 多态适用于覆盖和重载。 * 基于**引用类型**,确定在**编译时间**上确定将调用哪个重载方法。 方法重载示例 ```java package com.overloading; /* * Here we will learn how to overload a method in the same class. * Note: Which overloaded method is to invoke is depends on the argument passed to method. */ public class MethodOverloading { public static void main(String args[]) { //Creating object of the class MethodOverloading MethodOverloading cls = new MethodOverloading(); System.out.println("calling overloaded version with String parameter"); cls.method("Hello"); System.out.println("calling overloaded version with Int parameter"); cls.method(3); /* * Here same method name has been used, But with different argument. * Which method is to invoke is decided at the compile time only */ } /* * Overloaded version of the method taking string parameter * name of the method are same only argument are different. */ void method(String str) { System.out.println("Value of the String is :"+str); } /* * Overloaded version taking Integer parameter */ void method(int i) { System.out.println("Value of the Int is :"+i); } } ``` * 使用相同的方法名称但使用*不同的参数*称为重载。 * **构造器**也可以重载 * 重载的方法必须设置*不同的*参数。 * 重载方法**可能**具有不同的返回类型。 * 重载的方法**可能**具有*不同的访问修饰符*。 * 重载的方法**可能会**抛出不同的异常,**更宽或更窄的**没有限制。 * **超类**中的方法也可以在子类中重载。 * 多态适用于覆盖和重载。 * 基于**引用类型**,确定在**编译时**确定将调用哪个重载方法。