1. 程式人生 > >重寫overrider 與重載overload的區別

重寫overrider 與重載overload的區別

als ring r+ too main erl pub ati 類名

overload :

public class PenDemo {
    public static void pen(){
        System.out.println("我是一支黑色的鋼筆");
    }
    public static void pen(String color){
        System.out.println("我是一支"+color+"的鋼筆");
    }
    public static void main(String[] args) {
        pen();
        pen("藍色");
    }
}

方法重載(overload):

歸納:二個同,一個不同。

二個同:類名相同,方法名相同,一個不同:形參列表不同。

註意:1、方法重載與返回值類型沒有任何關系。

2、方法重載與是否有static 沒有任何關系。


overrider:

public class Parent {

    protected void Company(){
        System.out.println("公司總部");
    }
}
@Overrider
public class Son extends Parent {
    public void Company(){
        System.out.println("我是子公司總部");
    }
}

方法重寫(override):兩同、兩小、一大。

兩同:方法名相同、形參列表相同。

兩小:1、子類重寫的方法的返回值必須必父類方法的方法值更小或相等。

2、子類重寫的方法的拋出的異常必須必父類方法拋出的異常更小或相等。

一大:子類方法訪問權限必須必父類方法訪問權限更大或相等。

override:讓編譯器執行嚴格的檢查,要求被修飾的方法,必須重寫父類方法。


重寫overrider 與重載overload的區別