一、重载:在一个类中定义多个同名方法,但要求每个方法具有不同的参数的类型或参数的个数。
二、实例演示
1、新建三个类,类名分别为CarsOverLoading1、CarsOverLoading2、CarsOverLoading3
2、方法名相同的情况下,参数列表有以下几种情况即可算是重载:
参数的数量不同
参数的数据类型不同
参数类型的顺序不同
3、首先我们在CarsOverLoading1类中演示因为参数的数量不同而发生重载的情况。
package introduction7; public class CarsOverLoading1 { /* 方法名相同的情况下,参数列表有一下几种情况即可算是重载: 1、参数的数量不同 2、参数的数据类型不同 3、参数类型的顺序不同 */ //参数数量不同 //increaseSeatHeight中只有一个参数 public static void increaseSeatHeight(int heightToIncrease) { System.out.println("提高座椅高度为:"+heightToIncrease+"cm"); } //重载increaseSeatHeight,在参数列表中新增一个布尔类型的变量 public static void increaseSeatHeight(int heightToIncrease,boolean rememberHeight) { System.out.println("提高座椅高度为:"+heightToIncrease+"cm"); if(rememberHeight) { System.out.println("你设置的高度已保存"); }else { System.out.println("你设置的高度未保存"); } } public static void main(String[] args) { //参数数量不同时调用(因为该方法是静态的,所以不需要实例化即可调用) increaseSeatHeight(3); increaseSeatHeight(20, true); } }
结果为:
4、在CarsOverLoading2类中演示因为参数的数据类型不同而发生重载的情况。
package introduction7; public class CarsOverLoading2 { //根据参数的数据类型不同进行重载 public static void increaseSeatHeight(int heightToIncrease) { System.out.println("提高座椅高度为:"+heightToIncrease+"cm"+"这里是整数参数的increaseSeatHeight方法"); } public static void increaseSeatHeight(String heightToIncrease) { System.out.println("提高座椅高度为:"+heightToIncrease+"cm"+"这里是字符串参数的increaseSeatHeight方法"); } public static void main(String[] args) { //调用上述方法 increaseSeatHeight(50); //重载后的方法 increaseSeatHeight("五十"); } }
结果为:
5、在CarsOverLoading3类中演示因为参数类型的顺序不同而发生重载的情况。
package introduction7; public class CarsOverLoading3 { //根据参数数据类型的顺序不同进行重载 public static void increaseSeatHeight(String variable1,int variable2) { System.out.println("这是第一个重载的seSeatHeight方法"); } //重载后的方法,参数位置(顺序)进行的调换 public static void increaseSeatHeight(int variable2,String variable1) { System.out.println("这是第二个重载的seSeatHeight方法"); } public static void main(String[] args) { increaseSeatHeight( "重载前",1); increaseSeatHeight(2, "重载后"); } }
结果为:
三、参数类型相同,参数名称不同时,不能认为此方法发生了重载。
四、不能根据方法的返回值不同,来让方法重载。