A. 简述什么是方法重载方法重载必须具备什么样的条件
方法重载就是在一个类里面有方法的名字是一样的,但是方法的参数不同,可以是参数类型不同也可以是参数的个数不同。给你举个例子吧
class Area
{
float getArea(float r){
return 3.14*f*r;
}
double getArea(float x,int y){
return x*y;
}
float getArea(int x,float y){
return x*y;
}
double getArea(float x,float y,float z){
return (x*x+y*y+z*z)*2.0;
}
//还可以有其他的变量和方法什么的……我就不多写了……
}
注:方法的返回类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使类型不同,也必须保证参数不同。
方法重载的好处就在于当你调用方法的时候可以通过你传入的参数的类型自动匹配方法,也就是为了突出面向对象的特点。
不晓得你明白了否……
B. java 构造方法重载
方法重载:
1.必须在同一个类
2.方法名相同
3.方法参数个数或参数类型(或参数顺序)不同
注:
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int
2.方法重载与访问权限修饰符和方法返回值无关
调用:
1.当调用的时候,填好方法参数时,它会自动判断参数类型,参数类型顺序,个数,然后再调用相应的重载 方法,当匹配不到相应的重载方法,那么直接编译错误
例子:
方法1. show()
方法2. show(int a,int b)
方法3. show(int a,String b)
方法4. show(String b,int a)
方法5. show(int b,int a)
1. 方法1.2.3.4是重载方法(1与[234]参数个数不同,2与[34]参数类型不同,3与[4]参数类型顺序不同)
2. 方法1.3.4.5是重载方法(1与[534]参数个数不同,5与[34]参数类型不同,3与[4]参数类型顺序不同)
3. 方法2和5非方法重载,因为参数类型顺序一样,跟参数名字无关
4. 以方法1.2.3.4为例,show()会调用方法1,show(1,1)会调用方法2,show(1,"1")会调用方法3
show("1",1)会调用方法4
----------------------------------------------------------------------------------------------------------------
你两个方法名分别是test1,test2,方法名不同,肯定不是方法重载,而且构造方法名必须跟类名一样,不可能出现不同名的构造方法
2.假如test(int i,String s){} test(String s,int i){}
那么这2个构造方法是重载,不会出现编译错误,因为参数类型顺序不同,第一个构造方法参数类型顺序是int,String,第二个构造方法参数类型顺序是String,int