方法重载(overload)
适用于解决以下问题:
调用功能相似方法时传统的做法是编写多个有着不同名字的方法,这样既麻烦且不美观
解决方法
——方法重载(overload)
前提:
各个方法的功能都相似;
不是所有的语言都有这个机制
例如javascript没有这个机制
优点:
使用的方法名字一样,区分的依据是实参的数据类型;
程序员调用方法的时候比较方便,虽然调用的不同的方法,但是感觉就像是在使用一个方法一样,不需要记忆更多的方法;
同时代码更加美观。
注意:
功能不相似的时候尽可能让方法的方法名不同。
思考问题:
1.方法重载又被称为:overload
2.什么时候考虑使用方法重载:
功能相似的时候,尽可能让方法名相同;
【但是:功能不同/不相似的时候,尽可能不使用方法重载】
3.满足什么条件才构成方法重载
- 在同一个类中
- 方法名相同
- 参数列表不同:
- 数量不同
- 顺序不同
- 类型不同
4.方法重载和什么有关系,和什么没有关系?
- 方法重载和方法名 + 参数列表有关系
- 方法重载和返回值类型无关
- 方法重载和修饰符列表无关(即与是否有public等等无关)
方法重载的具体应用
使用下面的自定义类,利用其中的各个重载方法就可以实现简单快速地输出各种类型的值。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26// 自定义类
public class SelfPrint{
public static void p(byte data){
System.out.println(data);
}
public static void p(short data){
System.out.println( data);
}
public static void p(long data){
System.out.println(data);
}
public static void p(float data){
System.out.println(data);}
public static void p(double data){
System.out.println(data);
}
public static void p(boolean data){
System.out.println(data);
}
public static void p(char data){
System.out.println(data);
}
public static void p(String data){
System.out.println(data);
}
}