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