在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
2.判断是否是重载:
跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!
"两同一不同":同一个类、相同方法名
参数列表不同:参数个数不同,参数类型不同
3、在通过对象调用方法时,如何确定某一个指定的方法:
方法名 ---> 参数列表
4、我们调用方法时,我们输入几个参数,系统回去匹配相同参数个数,且顺序都一样的重载方法,如果参数列表相同,就可以调用该方法
public void eat(int b,int a){
方法体
}
public void eat(int a,int b){
方法体
}
这两不是重载,因为都是int型参数,系统是分不出来到,同样,String、double、、、、、等,这些前面和后面的类型一样,都是分不出来的,都不属于重载
- package KindMethod4;
-
- public class Demo1 {
- public static void main(String[] args) {
- Test sc = new Test();
- // 看参数列表,两个参数,自动定位有两个参数的方法,且都是整数的
- sc.giveMe(5,6);
-
- // 一个参数
- sc.giveMe(9);
-
- // 不同类型参数
- sc.giveMe("八十",12);
-
-
- }
-
-
- }
-
- class Test{
-
- public void giveMe(int i,int j){
- System.out.println(i+j);
- }
- public void giveMe(int i){
- System.out.println(i);
- }
- public void giveMe(String size,int i){
- System.out.println(size);
- }
- // 以上都属于重载,在同一个类中、方法名相同,参数列表不同
- }
一下方法构不成方法重载,都是整数,不管先后顺序怎样,结果都一样
public int getSum(int i,int j){
return 0;
}
public void getSum(int m,int n){
}
private void getSum(int i,int j){
}
1.编写程序,定义三个重载方法并调用。方法名为mOL。
三个方法分别接收一个int参数、两个int参数、一个字符串参数。
分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。
在主类的main ()方法中分别用参数区别调用三个方法。
2.定义三个重载方法max(),
第一个方法求两个int值中的最大值,
第二个方法求两个double值中的最大值,
第三个方法求三个double值中的最大值,
并分别调用三个方法。
-
-
- public class OverloadExer {
-
- //1. 如下的三个方法构成重载
- public void mOL(int i){
- System.out.println(i * i);
-
- }
- public void mOL(int i,int j){
- System.out.println(i * j);
- }
-
- public void mOL(String s){
- System.out.println(s);
- }
-
- //2.如下的三个方法构成重载
- public int max(int i,int j){
- return (i > j)? i : j;
- }
- public double max(double d1,double d2){
- return (d1 > d2)? d1 : d2;
- }
- public double max(double d1,double d2,double d3){
- double max = (d1 > d2)? d1 : d2;
- return (max > d3)? max : d3;
- }
- }