重载(overload)的概念
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。
-
重载的特点:
与返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型)。
调用时,根据方法参数列表的不同来区别。 -
重载的示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
可变个数的形参
//JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
//JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a ,String...books);
- 声明格式: 方法名(参数的类型名 …参数名)
- 可变参数: 方法参数部分指定类型的参数个数是可变多个:0个,1个或多个 3. 可变个数形参的方法与同名的方法之间,彼此构成重载
- 可变参数方法的使用与方法参数部分使用数组是一致的
- 方法的参数部分有可变形参,需要放在形参声明的最后
- 在一个方法的形参位置,最多只能声明一个可变个数形参
示例:
public void test(String[] msg) {
System.out.println(“含字符串数组参数的test方法 ");
}
public void test1(String book) {
System.out.println(“****与可变形参方法构成重载的test1方法****");
}
public void test1(String ... books) {
System.out.println("****形参长度可变的test1方法****");
}
public static void main(String[] args) {
TestOverload to = new TestOverload();
//下面两次调用将执行第二个test方法
to.test1();
to.test1("aa" , "bb");
//下面将执行第一个test方法
to.test(new String[]{"aa"});
}