同个类定义多个同名方法,只要它们的形参列表不同即可。
如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载
例如,在 JDK 的 java.io.PrintStream 中定义了十多个同名的 println() 方法。
- public void println(inti){…}
- public void println(doubled){…}
- public void println(String s){…}
这些方法完成的功能类似,都是格式化输出。根据参数的不同来区分它们,以进行不同的格式化处理和输出。它们之间就构成了方法的重载。实际调用时,根据实参的类型来决定调用哪一个方法。例如:
- System.out.println(102);// 调用println(int i)方法
- System.out.println(102.25);// 调用println(double d)方法
- System.out.println("价格为 102.25");// 调用println(String s)方法
方法重载的要求是两同一不同:同类中方法名相同,参数列表不同。
方法返回值类型、修饰符等,与方法重载没有任何关系。
使用方法重载其实就是避免出现繁多的方法名,有些方法的功能是相似的,如果重新建立一个方法,重新取个方法名称,会降低程序可读性。