java多型的原理:靜態分派和動態分派
1.靜態分派
所有依賴靜態型別來定位方法執行版本的分派動作(Parent p=new Son();左邊的Parent就是變數的靜態型別,或者外觀型別)。靜態分派發生在編譯階段,重寫(overload)是典型例子。編譯器在編譯期並不知道物件的實際型別,實際型別只有在執行期才知道。當方法的輸入引數是字面量的時候,你有多個版本的過載方法,編譯期可以確定的方法不是唯一的,例如你的輸入引數為‘x’,如果過載方法中有一個是以char型別為引數,編譯期確定呼叫此方法,如果沒有char型別引數的方法,字面量'x'在傳入方法的時候會發生自動型別轉換或者自動裝箱,以此來確定該呼叫哪一個過載方法。