1.方法重载
定义:一个类中,出现多个方法的名称相同,但是他们的形参列表是不同的,那么这些方法就成为方法重载了。
方法重载的条件:(1)必须发生在同一个类当中,方法名一致;
(2)(形参列表不同)参数的个数不同或参数的类型不同或参数的位置不同;
(如:修饰符,返回值类型是否一样都无所谓)
通过方法重载,同名方法能完成不同功能。
例:add(int x,int y)实现两个int类型数据相加;add(int x,int y,int z)实现3个int类型数据相加;三个方法名都是add,通过参数类型不同实现不同功能。
2.方法重载实例01
package Mai3;
public class Demo24 {
public static void main(String[] args) {
test();
test(100);
}
public static void test() {
System.out.println("===test2===");
}
public static void test(int a) {
System.out.println("===test2===" + a);
}
void test (double a) { //方法名一样,形参类型不一样方法重载
}
void test (int a ,double b) {
}
int test(int a,int b) { //方法名一样,形参个数不一样方法重载
return a + b;
}
}
运行结果为:
===test2===
===test2===100
3.方法重载add
package Mai3;
public class Demo25 {
public static void main(String[] args) {
int a = 1921;
int b = 28;
int c = 29;
String s1 = "1921";
String s2 = "28";
System.out.println(a + "+" + b + "=" + add(a,b)); //调用方法重载
System.out.println(s1 + "+" + s2 + "=" + add(s1,s2)); //调用方法重载
System.out.println("s1 + s2 = " + s1 + s2); //字符串连接
//System.out.println(s1 + "+" + a + "=" + add(s1,a)); //类型不同会报错
System.out.println(a + "+" + b + "+" + c + "=" + add(a,b,c));
}
public static int add(int a,int b) { //方法重载add
return a + b;
}
public static int add(String a,String b) { //该方法有两个String类型的形参
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
return x + y;
}
public static int add(int a, int b,int c) { //该方法有三个int 类型的形参
return a + b + c;
}
}
运行结果为:
1921+28=1949
1921+28=1949
s1 + s2 = 192128
1921+28+29=1978
4. 方法的返回值类型不同不能作为方法重载的依据;
class DemoX{
int add(int x,int y) {
return x + y;
}
String add(int x,int y) {
return String.valueOf(x) + String.valueOf(y);
}
}
虽然上述两个方法的返回值类型不同(分别是 int 和String ),但形参一样,因此他们不是重载。