重载
重载的来源
重载的背景:需求 :在一个类中,已经实现了两个整数(int类型) 求和。那么能不能做两个float类型的求和?
解决方法:
可以创建新的方法,也可以进行重载。
重载的含义:
在java中,如果有功能类似,可以使用相同的名字来定义不同功能方法;
- 所谓的不同功能:不是主体功能不同,而是参数不同。
- 参数不同包括:数量、类型、顺序不同(3者其1不同即可)
方法调用时,编译器如何知道需要调用的是哪一个方法?
虚拟机会根据语言环境,如参数类型、个数、顺序等找到指定的方法进行执行。
其实,就是只要参数能够跟形式参数进行匹配,就会找到相应的方法。
重载的要求
定义重载方法的时候,要求:
- 方法的名字必须相同,作用域必须相同
- 参数必须不同:数量、类型、顺序不同(只要一个不同,都是重载方法)
注意一下,使用重载的时候:一定不要将两个功能完全不一样的方法进行重载!!!
从代码的角度来说,上面做法是可以的,但是从业务逻辑和代码的可读性、应用型的角度来说不可以这么做。
重载的优点
- 定义端(方法的提供者):使用相同的方法名(一个方法)来表示功能相同的(多个)方法。
- 调用端(方法的使用者): 在调用的时候,可以使用相同名字(一个名字)的方法实现不同的功能。
- 重载也是多态性的体现:一个内容,可以实现多个功能