- 方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。
两同三不同
1.同一个类,同一个方法名。
2.不同:参数列表不同(类型,个数,顺序不同)只有返回值不同不构成方法的重载
int a (String str){}
void a (String str){}
调用:a();
总结:不知道调用哪个方法,所以只有返回值不同不构成方法的重载!!!
- 只有形参的名称不同,不构成方法的重载。
- 与普通方法一样,构造方法也可以重载。
package theChildOfGod.bjxy.oop;
/**
* 测试重载
* @author 徐子峰
*
*/
public class TestOverload {
public static void main(String[] args) {
MyMath m = new MyMath();
int result = m.add(3, 2);
double result1 = m.add(3.3, 2);
int result2 = m.add(3, 2, 1);
double result3 = m.add(3, 2.2);
System.out.println(result);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
}
}
class MyMath {
int a;
int b;
public MyMath() {
}
public MyMath(int a) {
this.a = a; //this.a的a是指类的成员变量的a
//等号后面的a是指形参的a;
}
public MyMath(int b, int a) {
this.b = b;
this.a = b;
}
public int add(int a, int b) {
return a+b;
}
//与第一个add方法的参数类型不同,构成了重载
public double add(double a, int b) {
return (double)(a+b);
}
//与第一个add方法的参数个数不同,构成了重载
public int add(int a, int b, int c) {
return a+b+c;
}
//与第一个add方法的参数的顺序不同,构成了重载
public double add(int a, double b) {
return a+b;
}
}