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岁了


使用重载其实就是避免繁多的方法函数名,有些函数的功能是相似的,如果重新建立一个函数,重新取个函数名称,会让程序段显得比较不容易阅读。

下面总结重载的实质:

❑方法名相同

❑参数个数不同

❑参数类型不同

当访问一个重载方法时,首先编译器会通过比较参数类型与实际调用方法中使用值的类型,以选择正确的方法,若没有发现匹配的,则编译器报错。这就叫做重载分辨。