什么是方法的重载?
方法的重载就是指方法的名一样,但是通过不同的参数,可以写具有同样的方法名的方法。
重载的方法会因为参数的不同调用不一样的方法,那这个参数的不同有三个维度,
第一个维度:参数个数不同;
public class Demo06 {
public static void main(String[] args) {
Demo06 demo06 = new Demo06();
demo06.add(0);
demo06.add(0, 0);
}
public int add(int a) {
System.out.println("这是一个参数的方法");
return 0;
}
public int add(int a,int b) {
System.out.println("这是两个参数的方法");
return 0;
}
}
我们可以很明显的看到当通过传入的参数个数不一样时,会调用不同的方法。
第二维度:参数类型不同
public class Demo06 {
public static void main(String[] args) {
Demo06 demo06 = new Demo06();
demo06.add(0);
demo06.add(0.0);
}
public int add(int a) {
System.out.println("这是一个参数的方法");
return 0;
}
public int add(double a) {
System.out.println("这是两个参数的方法");
return 0;
}
}
我们通过结果也可以很清晰看见,当我们在输入“0”时,调用的是int类型的方法,当我们输入“0.0”时,调用的是double类型的方法;
第三个维度:参数顺序不同
public class Demo06 {
public static void main(String[] args) {
Demo06 demo06 = new Demo06();
demo06.add(1,2.0);
demo06.add(1.0,2);
}
public int add(int a,double b) {
System.out.println("a的值是"+a+" "+"b的值是:"+b);
return 0;
}
public int add(double a,int b) {
System.out.println("a的值是"+a+" "+"b的值是:"+b);
return 0;
}
}
当我们输入的值的类型顺序不一样时,调用方法也是不一样的。
此外,方法的重载还有一些坑:
1.当你方法体的内容,无论如何改变,都不会影响;
2.当你修饰符改变时,也不会产生影响;
3.当你的返回值类型改变时,也不会产生影响;