一. 方法過載(overload)
/*
* 方法過載的判定:同一類中,方法名相同,引數列表不同(引數個數不同,引數列表中對應位置引數型別不同),其他方法返回值
* 和訪問修飾符都隨意。
*/public class overloadtest
// the first situation: the number of param table is different.
public void testfunc(int a, int b){}
// the second situation: the type of param table is different.
// 引數型別不同的意義是說:引數列表對應位置的型別不同,與引數名字沒有任何聯絡,所以在判斷方法過載的過程中
// 不考慮引數順序是否變化。
public void testfunc(int a, float c, int b){}
/** the following function isn't overload
*/// 報錯資訊:duplicate method testfunc(int, int, float) in type overloadtest
// 與第乙個方法重複報錯,因為引數a和b的型別相同,不管是否進行了引數順序的改變,最後在方法記錄的過程中,
// 還是會記錄成上面報錯資訊提示的那樣,而這個引數列表與第乙個函式的引數列表一模一樣。
public void testfunc(int b, int a, float c){}
// 報錯資訊:duplicate method testfunc(int, float, int) in type overloadtest
// 雖然該函式也是交換了引數順序,但是交換的兩個引數型別本來就不同,造成了與方法一的引數列表對應位置型別不同,
// 與方法一沒有造成重複報錯,但是與方法三有造成了重複報錯,應為他們的引數列表都是(int, float, int)。
// 從這裡也可以看出在方法過載的判定中,是不考慮引數名稱的。
public void testfunc(int a, float b, int c){}
}
二. 方法重寫(覆蓋)
方法重寫也叫方法覆蓋,表示子類要對父類的某一方法進行修改,方法的重寫比較簡單,通常遵循以下原則:
1. 兩同:方法名和方法引數列表相同
2. 一大: 子類中的重寫方法的訪問許可權大於等於父類中的方法
3. 二小:子類中的重寫方法丟擲的異常型別要小於等於父類;子類中的重寫方法的返回值型別小於等於父類
Java中覆蓋 重寫 過載詳解
過載 通俗的講就是方法名必須一致,但方法中的引數的狀態不一致!先來看乙個過載的例子 public class overloadtest 方法1 param a param b public static void add int a,int b 方法2 param a param b public ...
方法過載 覆蓋和重寫的區別
過載 overload 過載 在乙個類中,方法名相同,但引數列表不同。對於方法來說,方法名和引數列表共同組成了方法的標識,因此在乙個類中允許存在兩個相同名稱的方法,只要方法的引數列表不完全相同 引數數量或引數型別不同 這時稱該方法具有同名的過載形式,即方法名相同而標識不同。訪問修飾符 可以不相同 返...
過載和覆蓋重寫
過載即在同乙個類中,方法名稱相同,引數列表不同 引數列表的順序不同或者引數列表的個數不同 的方法,稱為過載。public class overloaddemo public overloaddemo string name,int age public overloaddemo string nam...