重载(Overload)

如以下代码,sumInt用来计算两个int类型数字的和,float,long,double分别用了sumFloat方法,sumLong方法,sumDoublet方法,如此便写了4个方法。

 

public class MethodTest{

 

public static void main(String[] args){

System.out.println(sumInt(10,20));

System.out.println(sumDouble(1.0,2.0));

System.out.println(sumLong(10L,20L));

System.out.println(sumFloat(1.0F,2.0F));

}

 

public static int sumInt(int a,int b){

return a + b;

}

 

public static double sumDouble(double a,double b){

return a + b;

}

 

public static long sumLong(long a,long b){

return a + b;

}

 

public static float sumFloat(float a,float b){

return a + b;

}

}

 

 

方法重载(overload)

上面程序有缺点,定义的4个方法,功能上都是计算两个数字的和,只不过传入的参数类型不同,调用者在调用的时候,需要记忆每个方法的名字,并且需要自己根据传入参数的类型来判断调用相应的方法,这样使用起来不是很方便,那为了使用方便,我们来改造一下上面的代码。

 

public class MethodTest{

public static void main(String[] args){

System.out.println(sum(10,20));

System.out.println(sum(1.0,2.0));

System.out.println(sum(10L,20L));

System.out.println(sum(1.0F,2.0F));

}

 

public static int sum(int a,int b){

return a + b;

}

 

public static double sum(double a,double b){

return a + b;

}

 

public static long sum(long a,long b){

return a + b;

}

 

public static float sum(float a,float b){

return a + b;

}

}

 

上面将之前的代码里面的4个方法名全部改成一样的了,这种情况叫做方法重载(overload)。

 

方法重载发生的条件:

发生在同一个类中.

方法名相同

参数列表不同(类型,个数,顺序)

 

注意:

方法重载和返回值类型无关

方法重载和方法的修饰符列表无关。

//参数的类型不同,构成重载

public static void m1(int a){}

public static void m1(double a){}

 

//参数的个数不同,构成重载

public static void m2(int a,int b){}

public static void m2(int a){}

 

//参数的顺序不同,构成重载,不过开发中不这样使用

public static void m3(int a,double b){}

public static void m3(double a,int b){}

 

//以下两个m4方法并没有构成重载.

//两个方法完全一样,错误

//public static void m4(int a){}

//public static void m4(int b){}

 

 

/*

方法的重载和方法的返回值类型无关,不构成重载

public static void m5(){}

public static int m5(){

return 100;

}

*/

 

 

/*

方法的重载和方法的修饰符列表无关,不构成重载

static void m6(){}

public static void m6(){}

*/

 

转载于:https://www.cnblogs.com/zkxinan/p/10468973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值