public
void
test
(int a)
public string test
(int a,string b)
animal b = new dog(); 大家可能有疑問,b 屬於 animal 型別,但是執行的是 dog 類方法。因為在編譯階段,只是檢查引數的引用型別,存在 animal 這個類。而且這個類有 move 方法,所以編譯不會報錯,到了執行階段,執行的是 dog 型別的 move 方法class
animal
}class
dogextends
animal
}public
class
test
}//執行結果
動物可以移動
狗可以跑
以下情況編譯就會出錯
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...