多態(tài),動態(tài)方法調(diào)度(dynamic method dispatch)

多態(tài)Polymorphism,向上轉(zhuǎn)型Upcasting,動態(tài)方法調(diào)度(dynamic method dispatch)
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
什么叫多態(tài)?簡言之,馬 克 - t o - w i n:就是父類引用指向子類時,父類和子類必須同時擁有某個同名函數(shù),父類引用到底指向誰(調(diào)用誰的函數(shù)),是在runtime時決定的,因此呈現(xiàn)多種狀態(tài)(不知道會指向若干子類中的哪一個還是父類自己)。拿上一節(jié)的例子來講,比如運行時如果用戶輸入自行車,就執(zhí)行自行車的駕駛方法。如果用戶輸入小轎車,就執(zhí)行小轎車的駕駛方法,涉及到用戶,這些都只能在運行時才能干。運行時的,就是動態(tài)的,所以這也是動態(tài)方法調(diào)度(dynamic method dispatch),既然是父類指針指向子類,這也是向上轉(zhuǎn)型Upcasting(為什么是向上?看我本章的第一張圖:父類 fuLei=(父類)new 子類(); ,,,,感覺到一種向上轉(zhuǎn)型的意味嗎?子類 zilei=(子類)fulei;    這是向下轉(zhuǎn)型)。順便提一句。馬克-to-win:學術(shù)界另有一種說法,overload也算多態(tài)。我認為這只是學術(shù)上的一種說法而已,張三愛這么認為,李四愛那么認為,無所謂對錯。不像語法錯誤,錯了,編譯器真不讓你通過。不過本書作者不支持這種overload說法。