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);`
等等代码.
很显然,这是方法重载的一个应用.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,656评论 1 114
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 961评论 0 2
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,142评论 0 62
  • 生活苦 该有一些幼稚的甜 就像简单的期许明天考试会过 或是轻松的做下一整套卷子 心情苦的时候浑身都难受 心里甜的时...
    叫小迷糊的姚文静阅读 175评论 2 2