方法的重载(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; } }