方法重载

在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。例如,在Hello类中,定义多个hello()方法:

  1. class Hello {
  2. public void hello() {
  3. System.out.println("Hello, world!");
  4. }
  5. public void hello(String name) {
  6. System.out.println("Hello, " + name + "!");
  7. }
  8. public void hello(String name, int age) {
  9. if (age < 18) {
  10. System.out.println("Hi, " + name + "!");
  11. } else {
  12. System.out.println("Hello, " + name + "!");
  13. }
  14. }
  15. }

这种方法名相同,但各自的参数不同,称为方法重载(Overload)。

注意:方法重载的返回值类型通常都是相同的。

方法重载的目的是,功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单。

举个例子,String类提供了多个重载方法indexOf(),可以查找子串:

  • int indexOf(int ch):根据字符的Unicode码查找;

  • int indexOf(String str):根据字符串查找;

  • int indexOf(int ch, int fromIndex):根据字符查找,但指定起始位置;

  • int indexOf(String str, int fromIndex)根据字符串查找,但指定起始位置。

试一试:

方法重载 - 图1

练习

方法重载 - 图2

下载练习:给Person增加重载方法 (推荐使用IDE练习插件快速下载)

小结

方法重载是指多个方法的方法名相同,但各自的参数不同;

重载方法应该完成类似的功能,参考StringindexOf()

重载方法返回值类型应该相同。

读后有收获可以支付宝请作者喝咖啡,读后有疑问请加微信群讨论

方法重载 - 图3方法重载 - 图4