Java中方法的重载详解
原创
©著作权归作者所有:来自51CTO博客作者IT路宇的原创作品,请联系作者获取转载授权,否则将追究法律责任
- 方法的重载(overload)定义:在一个类中,允许出现一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。
举例:
package demo2;
public class OverloadTest {
private void getSum(int i,int m){
System.out.println(i+m);
}
private void getSum(String i,String M){
}
/*private int getSum(int n,int m){
return 0;
}*/
private void getSum(double n,String M){
}
}
判断是否是重载:跟方法体,返回值类型,形参变量名,权限修饰符无关。
通过对象调用方法,根据方法名和参数列表去调用!
练习:
1.编写程序,定义三个重载方法并调用,方法名为mOL
三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main ()方法中分别用参数区别调用三个方法。
package demo2;
public class OverLoaddemo {
public static void main(String[] args) {
OverLoaddemo overLoaddemo=new OverLoaddemo();
overLoaddemo.mOL(3);
overLoaddemo.mOL(5,3);
overLoaddemo.mOL("你好");
}
private void mOL(int a){
System.out.println(a*a);
}
private void mOL(int a,int b){
System.out.println(a*b);
}
private void mOL(String a){
System.out.println(a);
}
}
2.定义三个重载方法max(),
第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值,第三个方法求三个double值中的最大值,并分别调用三个方法。l
package demo2;
public class OverLoaddemo2 {
public static void main(String[] args) {
}
private int max(int a,int b){
return (a>b)?a:b;
}
private double max(double a,double b){
return (a>b)?a:b;
}
private double max(double a,double b,double c){
double max=(a>b)?a:b;
return (max>c)?max:c;
}
}