12-面向对象-方法重载(OverLoad)
基本介绍
重载(Overload):指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同(参数的类型和个数不同)
即在Java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致!
public class OverLoad01 { public static void main(String[] args){ MyCalculator mc = new MyCalculator(); System.out.println(mc.calculate(1,2)); //3 System.out.println(mc.calculate(1.1,2)); //3.1 System.out.println(mc.calculate(1,2.2)); //3.2 System.out.println(mc.calculate(1,2,3)); //6 } } class MyCalculator{ //以下四个 calculate方法 构成了重载 //两个整数的和 public int calculate(int n1, int n2){ return n1 + n2; } //一个整数,一个double的和 public double calculate(int n1, double n2){ return n1 + n2; } //一个double,一个Int的和 public double calculate(double n1, int n2){ return n1 + n2; } //三个Int的和 public int calculate(int n1, int n2, int n3){ return n1 + n2 + n3; } }
方法重载的注意事项和使用细节
方法名:必须相同
参数列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)
返回类型:无要求
构成重载的两个方法,必须在同一个作用域中。
练习题1. 编写程序,类 Method 中定义三个重载方法并调用,方法名为 m三个方法分别接收 一个int参数、两个int参数、一个字符串参数。三个重载方法分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。需要在主类的main()方法中分别用参数区别调用三个方法。
public class OverLoadExercise01 { public static void main(String[] args){ Method method = new Method(); method.m(10); method.m(10,20); method.m("马铃薯"); } } class Method{ public void m(int n){ System.out.println("平方 = " + Math.pow(n,2)); } public void m(int n1, int n2){ System.out.println("相乘 = " + (n1 * n2)); } public void m(String str){ System.out.println("字符串 = " + str); } }