過載:是指允許存在多個同名函式,而這些函式的參數列不同(或許引數個數不同,或許引數型別不同,或許兩者都不同)。
編譯器根據函式不同的引數列表,對同名函式的名稱做修飾,然後這些同名函式就成了不同的函式。有兩個同名函式int func(int)和int func(string),那麼編譯器做過修飾後的函式名稱可能是:int_func、string_func。對這兩個函式的呼叫在編譯期間就已經確定了,是靜態的。也就是說,它們的位址在編譯期間就繫結了(早繫結),因此過載和多型無關。
重寫:是指子類重新定義父類虛函式的方法。
和多型真正相關。當子類重新定義父類的虛函式後,父類指標根據賦給它的不同的子類指標,動態的呼叫屬於子類的函式,這樣的函式呼叫在編譯期間是無法確定的(呼叫的子類的虛函式的位址無法給出)。因此,這樣的函式位址是在執行期間繫結的(晚繫結)。
過載(Overload)和重寫(Override)
public void test int a public string test int a,string b class animal class dogextends animal public class test 執行結果 動物可以移動 狗可以跑animal b new dog 大家可能有...
過載(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...