Java语言基础8--方法重载(Overload)

遇到什么问题

需求1:求两个int类型的数之和.
public static int getSum1(int a,int b){}
需求2:求两个float类型的数之和.
public static float getSum2(float a,float b){}
需求3:求两个long类型的数之和.
需求4:求两个double类型的数之和.


**上述问题的功能,都是求和,但是因为参数列表不同而造成了方法的名称不同,就给我们带来很大不利.既然功能相同了,那么方法也应该相同**

###怎么解决?
使用方法重载(Overload).
> public static int getSum(int a,int b){}
public static int getSum(float a,float b){}

###什么是方法重载(Overload)
重载方法的定义是在同一个类中,某方法允许存在一个以上的同名方法,只要它们的参数列表不同即可。
###方法重载的作用
屏蔽了同一功能的方法由于参数不同所造成的差异
###使用规则
方法重载判断原则: **“两同一不同”**
- **两同**:同类中,方法名相同;
- **一不同**:方法参数列表不同(参数类型、参数个数、参数顺序);
**注意:方法重载和方法的返回值类型无关**

###应用场景
- 最常用的应用场景:**构造器的重载**
```
class User {
  private String name;
  private int age;
  private String id;

  //无参构造器
  public User() {
  }

  //自定义构造器
  public User(String name, int age, String id) {
      this.name = name;
      this.age = age;
      this.id = id;
  }
}
```
- Java代码中最常见的使用
为什么`System.out.println();`可以打印任意类型的数据?
>查看源代码发现存在:
` public void println(boolean x);`
`public void println(char x);`
` public void println(long x);`
`public void println(float x);`
等等代码.
很显然,这是方法重载的一个应用.

你可能感兴趣的:(Java语言基础8--方法重载(Overload))