javaSE学习-方法的重载
2019-02-18 本文已影响17人
程序员三千_
问题
之前已经写了一个方法sumInt用来计算两个int类型数字的和,如果要是想计算两个float类型数字的和呢?ok,那就再来写一个sumFloat方法,除此之外,还有long类型,double类型,如果每种类型都要进行求和计算的话,就会像下面这种情况写4个方法了。
![](https://img.haomeiwen.com/i12474664/6c498ad663e6a001.png)
![](https://img.haomeiwen.com/i12474664/174d34017c0cf87b.png)
方法重载(overload)
上面程序有缺点,定义的4个方法,功能上都是计算两个数字的和,只不过传入的参数类型不同,调用者在调用的时候,需要记忆每个方法的名字,并且需要自己根据传入参数的类型来判断调用相应的方法,这样使用起来不是很方便,那为了使用方便,我们来改造一下上面的代码。
![](https://img.haomeiwen.com/i12474664/9c709a9def3f18de.png)
![](https://img.haomeiwen.com/i12474664/5b7095d1c5f6b698.png)
上面将之前的代码里面的4个方法名全部改成一样的了,这种情况叫做方法重载(overload)。
方法重载发生的条件
1、发生在同一个类中.
2、方法名相同
3、参数列表不同(类型,个数,顺序)
注意:
1、方法重载和返回值类型无关
2、方法重载和方法的修饰符列表无关。
![](https://img.haomeiwen.com/i12474664/1bb6b445c9b3935e.png)
![](https://img.haomeiwen.com/i12474664/9f7346d9f80cb2b4.png)
重载和重写的区别:
重写:是子类重写父类的方法,是在不同类中
重载:是在一个类中