Java的過載與覆蓋,傻傻分不清!
過載和覆蓋是JAVA多型性的不同表現方式,其中過載是在一個類中多型性的一種表現,是指在一個類中定義了多個同名的方法,他們或有不同引數個數或有不同引數型別。

在使用過載時需注意以下幾點:
1)過載是通過引數來區分的,例如不同的引數個數,不同的引數型別。
2)不能通過方法的訪問許可權、返回型別和丟擲異常型別來進行方法過載。
覆蓋是指派生類函式覆蓋基類函式。覆蓋一個方法並對其重寫,以達到不同的作用。在使用覆蓋時要注意以下幾點:
1)派生類中覆蓋函式的必須要和基類中被覆蓋的方法有相同的方法名和引數。
2)派生類方法的返回值必須和基類中被覆蓋方法的返回值相同。
3)派生類中的覆蓋方法所拋的異常必須和基類中被覆蓋的方法所丟擲的異常一致。
4)基類中被覆蓋的方法不能為private,否則其子類只是定義了了一個方法,並沒有對其覆蓋。
覆蓋和過載的主要區別是覆蓋是子類與父類之間的關係,是垂直關係;過載是一個類中方法之間的關係,是水平關係。最後留一道題:
class Super{
public int f(){
return 1;
}
}
public class SubClass extends{
public float f(){
return 2f;
}
public static void main(String[] args){
Super s = new SubClass();
System.out.print(s.f());
}
}
問:以上程式碼的執行結果是什麼?
為了讓學習變得輕鬆、高效,今天給大家免費分享一套Java教學資源。幫助大家在成為Java架構師的道路上披荊斬棘。需要資料的歡迎加入學習交流群:9285,05736