1. 程式人生 > >重寫和隱藏的本質,通過demo測試說明

重寫和隱藏的本質,通過demo測試說明

重寫和隱藏的本質區別是:重寫是動態繫結的,根據執行時引用所指向物件的實際型別來決定呼叫相關類的成員。而隱藏是靜態繫結的,根據編譯時引用的靜態型別來決定呼叫的相關成員。換句話說,如果子類重寫了父類的方法,當父類的引用指向子類物件時,通過父類的引用呼叫的是子類方法。如果子類隱藏了父類的方法(成員變數),通過父類的引用呼叫的仍是父類的方法(成員變數)。

首先,建立一個Animal作為父類


再建立一個Dog類繼承Animal,且重寫父類的move方法


測試1 不遮蔽子類Dog的move方法


測試2 遮蔽子類Dog的move方法