8.4.2 用实例来说明重载的意义
【实例8.15】为了能让读者更加熟练运用重载方法编写程序,下面再举一个有关重载的实例。
01 public class overload1
02 {
03 ///一个输出方法
04 void print()
05 {
06 System.out.println("你好");
07 }
08 ///重载上面的输出方法,加上了参数
09 void print(String name)
10 {
11 System.out.println(name+",你好");
12 }
13 ///重载上面的输出方法,加上了两个参数
14 void print(String name, int age)
15 {
16 System.out.println(name+",你好,你有"+age+"岁了");
17 }
18 public static void main(String args[])
19 {
20 overload1 o=new overload1();
21 o.print();
22 o.print("王华");
23 o.print("王华",30);
24 }
25 }
【代码说明】第4~17行定义了3个同名称print()方法,不同的是参数个数和参数类型。第21~23行分别调用这3种方法。
【运行效果】
你好
王华,你好
王华,你好,你有30岁了
使用重载其实就是避免繁多的方法函数名,有些函数的功能是相似的,如果重新建立一个函数,重新取个函数名称,会让程序段显得比较不容易阅读。
下面总结重载的实质:
❑方法名相同
❑参数个数不同
❑参数类型不同
当访问一个重载方法时,首先编译器会通过比较参数类型与实际调用方法中使用值的类型,以选择正确的方法,若没有发现匹配的,则编译器报错。这就叫做重载分辨。