Java中方法重載和方法覆蓋的異同


方法重載和方法覆蓋的相同點

  1. 都要求方法名相同;
  2. 都可以用於抽象方法和非抽象方法之間。

方法重載和方法覆蓋的不同點

  1. 方法覆蓋要求參數簽名必須一致,而方法重載則要求參數簽名必須不一致;
  2. 方法覆蓋要求返回類型必須一致,而方法重載對此不做限制;
  3. 方法覆蓋只能用於子類覆蓋父類的方法,方法重載用於同一個類的所有方法(包括從父類中繼承來的方法);
  4. 方法覆蓋對方法的訪問權限和拋出的異常有特殊的要求,而方法重載在這方面沒有任何限制;
  5. 父類的一個方法只能被子類覆蓋一次,而一個方法在所在的類中可以被重載多次。

示例如下:

1 public class Base {
2   protected void method(int v) {} 
3   private void method(String s) {}    //重載
4 }

 

1 public abstract class Sub extends Base {
2   public void method(int v) {}      //覆蓋
3   public int method(int v1, int v2) {return 0;}    //重載
4   protected void method(String s) throws Exception{}    //重載
5   abstract void method();    //重載
6 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM