1. 程式人生 > >過載(overload)與重寫(override)的區別

過載(overload)與重寫(override)的區別

過載(overload):在一個類中,定義多個方法名相同但引數列表不同的方法,在編譯時,根據引數的個數和型別來決定哪個方法。

重寫(override):在兩個類中,並且是子類和父類的關係,子類中定義和父類完全相同的方法,在程式執行時,根據物件的型別不同(而不是引用型別)而呼叫不同的版本。

執行順序:過載看型別,重寫看物件

過載(發生在編譯時):是.java檔案到.class檔案的過程----jvm還沒有登場

此時記憶體沒有物件(編譯只檢查語法對不對)

重寫(發生在執行時):是jvm載入.class檔案並執行.class的過程----jvm登場

此時記憶體才有物件

注:堆、棧、方法區:是由jvm分配的記憶體