Overloading和Overriding的區別


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

Overloading 重載java

Overriding 重寫,又稱覆蓋spa


方法覆蓋和方法重載具備如下相同點:

  • 都要求方法同名code

  • 均可以用於抽象方法和非抽象方法繼承


方法覆蓋和方法重載的不一樣點:

  • 方法覆蓋要求參數必須一致,而方法重載要求參數必須不一致class

  • 方法覆蓋要求返回值類型必須一致,而方法重載不作限制權限

  • 方法覆蓋只用於子類覆蓋父類的方法,方法重載用於同一個類的全部方法(包括從父類中繼承的方法)方法

public class Base {
    public void method() {...}
}

public class Sub extends Base {
    //繼承了父類的method()方法
    public void method() {...}
    
    //重載了從父類繼承的method方法
    public void method(int i) {...}
    
    //方法能夠被重載不少次
    public void method(int i,String s) {...}
}

  • 方法覆蓋對方法的訪問權限和拋出的異常有特殊要求,而方法重載沒有限制異常

  • 父類的一個方法只能被子類覆蓋一次,而一個方法在所在的類中能夠被重載不少次di

相關文章
相關標籤/搜索