定义:
方法重载指同一类中定义多个方法之间的联系;
满足方法重载的条件:
多个方法在同一个类中多个方法具有相同的方法名多个方法的参数不同、类型不同、数量不相同条件解释:
在同一个Moverloading类下,并且多个相同的方法名的类型不同-->int、boolean、void(无类型)
package 方法; public class Moverloading { public static void main(String[] args) { public static void getmax(){ //方法体 } public static int getMax(){ //方法体 } public static boolean getmax(){ //方法体 } } }
多个方法的参数不同、类型不同、数量不同:
参数不同:
package 方法; public class Moverloading { public static void main(String[] args) { public static void getmax(String name){ //方法体 } public static void getMax(int age){ //方法体 } } }
类型不同:
package 方法; public class Moverloading { public static void main(String[] args) { public static void getmax(String name){ //方法体 } public static void getMax(int age){ //方法体 } } }
数量不同:
package 方法; public class Moverloading { public static void main(String[] args) { public static void getmax(String name){ //方法体 } public static void getMax(String name,int age){ //方法体 } } }
例子:
package 方法; public class functTansale { public static void main(String[] args) { int num =100; System.out.println(num); System.out.println("-------------"); int callback = Change(num); System.out.println(callback); } public static int Change(int num){ num = 200; return num; } }
在数组中传递:
package 方法; public class arryTranslate { public static void main(String[] args) { int[] arr = {10,20,30}; System.out.println(arr[1]); System.out.println("---------"); change(arr); System.out.println(arr[1]); } public static void change(int[] arr){ arr[1] = 100; } }
不用为了对不同的参数类型或参数个数,而写多个函数,系统可以自动匹配;
多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。
这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。重载比if...else要优雅,减少了if...else部分的代码。