package cn.cast.day04.Demo04;
/*
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法,太麻烦
方法的重载(OverLoad)-多个方法的名称一样,但是参数列表不一样,
好处-只需要一个参数名称,就可以实现类似的功能
特点-
1.方法名称一样
2.参数列表不一样(参数列表赋值时,必须数据类型一一对应)
3.参数的多类型顺序不同
4.与参数名称无关
方法重载的程序语句是否正确 与下列因素无关
1.与参数的名称无关(虽然参数类型不同,但是在参数名称与变量名称完全一样时,会被电脑识别为重复语句—程序中不能出现重复的语句)
2.与方法的返回值类型无关
*/
public class Demo01MethodOverload {
/*public static void main(String[] args) {
System.out.println(sumTwo(1,2));//3
System.out.println(sumThree(1,2,3));//6
System.out.println(sumFour(1,2,3,4));//10}
public static int sumTwo(int a,int b){
return a+b;
}
public static int sumThree(int a,int b,int c){
return a+b+c;
}
public static int sumFour(int a,int b,int c,int d){
return a+b+c+d;
}*/public static void main(String[] args) {
//参数名称一样,参数列表不一样,参数类型也可以不一样
System.out.println(sum(1,2));
System.out.println(sum(1,2.0)); //参数的类型先后顺序不同
System.out.println(sum(1.0,2)); //参数的类型先后顺序不同
System.out.println(sum(1.0,2.0)); //参数的类型先后顺序不同
System.out.println(sum(1,2,3));
System.out.println(sum(1,2,3,4));
}public static int sum(int a,int b){
System.out.println(“有2个参数的方法”);
return a+b;
}
/* //与方法的返回值类型无关--------------------------这种是错误写法
(虽然参数类型不同,但是在参数名称与变量名称完全一样时,会被电脑识别为重复语句—程序中不能出现重复的语句)public static double sum(int a,int b){
System.out.println(“有2个参数的方法”);
return a+b+0.0;*///参数的类型先后顺序不同
public static int sum(int a,double b){
System.out.println(“有2个参数的方法 int a + double b”);
return (int)(a+b);
}
//参数的类型先后顺序不同
public static int sum(double a,int b){
System.out.println(“有2个参数的方法 double a+ int b”);
return (int)(a+b);
}
//参数的类型先后顺序不同
public static int sum(double a,double b){
System.out.println(“有2个参数的方法 double a+ double b”);
return (int)(a+b);
}public static int sum(int a,int b,int c){
System.out.println(“有3个参数的方法”);
return a+b+c;
}
public static int sum(int a,int b,int c,int d){
System.out.println(“有4个参数的方法”);
return a+b+c+d;
}
}