方法重载
介绍
方法重载(Overloading)是面向对象编程中一个非常重要的概念,它允许在同一个类中定义多个同名的方法,但这些方法的参数列表必须不同(或者是参数的数量不同,或者是参数的类型不同,或者是参数的顺序不同
满足什么条件,代码就构成方法重载
构成方法重载需要满足以下条件:
-
在同一类中:重载的方法必须位于同一个类或接口中。
-
方法名相同:重载的方法名称必须完全一致。
-
参数列表不同:参数的数量、类型或者顺序至少有一项不同。注意,仅仅返回类型不同并不构成重载。
是什么编译阶段区分还是运行阶段区分
方法重载是在编译阶段由Java编译器根据调用时提供的参数类型和数量来决定具体调用哪个方法的。这意味着,当程序被编译时,编译器会根据方法调用的实参类型和数量精确匹配到相应的方法签名。
案例
使用方法重载
package trx.tutu.Dome1; /* * 方法重载 * */ public class Text1 { //不使用的方法重载的时候 //例子 public static void main(String[] args) { } public static void test1(int a, int b) { int c = a + b; System.out.println(c); } public static void test2(double a,double b) { double c=a+b; System.out.println(c); } }
方法重载
package trx.tutu.Dome1; /* * 方法重载 * */ public class Text2 { //使用方法重载 public static void main(String[] args) { } public static void test(int a, int b) { int c = a + b; System.out.println(c); } public static void test(double a,double b) { double c=a+b; System.out.println(c); } public static void test(String a,double b) { System.out.println("String a,double b"); } public static void test(double b,String a) { System.out.println("double b,String a"); } }
注意看区别 有什么区别
什么时候考虑用方法重载
当需要提高代码可读性:通过方法名表达操作意图,而不用额外的注释或复杂的命名来区分不同情况下的处理逻辑。
当需要简化接口:为用户提供统一的接口名称,但根据不同的输入提供多样化的功能,使得API更加易用。
当需要减少重复代码:对于执行类似任务但处理不同类型数据的方法,可以通过重载来避免编写大量相似的代码。