美文网首页
Java中方法的重载

Java中方法的重载

作者: 无量儿 | 来源:发表于2018-09-10 11:02 被阅读0次

1. 什么是方法的重载(Overload)?

方法的名称相同,但是参数列表不同。

2. 什么叫参数列表不同?

参数列表不同有下列三种情况,均可以形成重载。

  • 1. 参数的个数不同
    下面两个方法的方法名相同,但参数数量不同,可以形成重载
public static int sum(int a, int b) {...}
public static int sum(int a, int b, int c) {...}
  • 2. 参数的类型不同
    下面两个方法形参的类型不同,一个是int类型,一个是double类型,可以形成重载
public static int sum(int a, int b) {...}
public static double sum(double a, double b) {...}
  • 3. 参数的多类型顺序不同
    下面两个方法各有两个形参,都是intdouble类型,但排列顺序不同,依然可以形成方法重载
public static double sum(int a, double b) {...}
public static double sum(double a, int b) {...}

3. 重载与什么因素无关?

  • 1. 与返回值类型无关
    下面两个相同方法名、不同返回值的方法无法形成重载。
public static int sum(int a, int b) {...}
public static String sum(int a, int b) {...}

为什么不能重载?假如方法有返回值,方法的调用有三种:单独调用、赋值调用和打印调用。我们可以想像,如果返回值类型不同可以重载,其中赋值调用和打印调用可以区分,但单独调用的时候我们并不使用返回值,所以无法区分!所以重载与返回值类型无关。

  • 2. 与参数名称无关
    下面两个方法形参名不同,但不能形成重载,因为传参过程中使用的是参数里面的值,而不是参数是什么变量名。
public static int sum(int a, int b) {...}
public static int sum(int x, int y) {...}

相关文章

网友评论

      本文标题:Java中方法的重载

      本文链接:https://www.haomeiwen.com/subject/tcudgftx.html