過載(Overload)和重寫(Override)

2021-10-03 07:21:14 字數 675 閱讀 8159

public

void

test

(int a)

public string test

(int a,string b)

class

animal

}class

dogextends

animal

}public

class

test

}//執行結果

動物可以移動

狗可以跑

animal b = new dog(); 大家可能有疑問,b 屬於 animal 型別,但是執行的是 dog 類方法。因為在編譯階段,只是檢查引數的引用型別,存在 animal 這個類。而且這個類有 move 方法,所以編譯不會報錯,到了執行階段,執行的是 dog 型別的 move 方法

以下情況編譯就會出錯

class

animal

}class

dogextends

animal

public

void

bark()

}public

class

test

}//編譯出錯,因為 b 沒有 bark 方法

過載overload和重寫overried的區別

過載 是指允許存在多個同名函式,而這些函式的參數列不同 或許引數個數不同,或許引數型別不同,或許兩者都不同 編譯器根據函式不同的引數列表,對同名函式的名稱做修飾,然後這些同名函式就成了不同的函式。有兩個同名函式int func int 和int func string 那麼編譯器做過修飾後的函式名稱...

過載(overload 和重寫(override)

重寫方法的過載和方法的重寫的區別 對於類似的多個方法,全部都是執行類似的操作,但是因為引數列表不一樣,所以需要記住的名字太多。使用方法過載可以很好的解決這個問題。對於類似功能的多個方法,只要記住乙個方法名即可,可以自動的根據引數列表中引數的個數的不同來適配。方法過載 overload 方法名相同,但...

過載overload和重寫override的區別

public class methodoverridevsoverload param args public static void main string args if o3.equals o4 結果輸出是 methodoverridevsoverload object o3 and o4 i...