"引用"與多態的關系筆試經驗
引用是除指針外另一個可以產生多態效果的手段。這意味著,一個基類的引用可以指向它的派生類實例。
例
Class A; Class B : Class A{…}; B b; A& ref = b;
拓展閱讀:
以現實情況舉一個例子說明多態的應用:
假設有一個“小提琴演奏者”類,有一個“鋼琴演奏者”類,還有一個“薩克斯演奏者”類。它們都是彈奏樂器的,都繼承自“樂器演奏者”類。“樂器演奏者”類有個方法叫做“演奏”。三種不同的子類有不同的“演奏”方法實現(拉、彈、吹)。
那么指揮家如果要指揮一個交響樂,那么有兩個辦法:
一,分別說“小提琴拉起來”、“鋼琴彈起來”、“薩克斯吹起來”
二,只需要說一句“樂器們都演奏起來”
顯然第一種方法是很笨拙的。因為指揮家不需要知道每種樂器演奏者具體怎么樣去演奏樂器(是吹還是彈還是拉),他只需要指揮就可以了。因此應當采用第二種做法。
那么如何實現第二種做法呢?那就是把三種樂器演奏者子類看成是“樂器演奏者”父類。指揮家只需要調用“演奏”方法就可以了。至于具體是怎么去演奏,指揮家是不管的。
雖然代碼上寫的是把具體的'演奏者子類看成了父類,調用的是父類的“演奏”方法,但是因為子類繼承了父類的“演奏”方法并且重寫為更加具體的實現(拉或者彈或者吹),創建實例的時候創建的是子類的實例(構造方法是子類的,只不過看成是父類去用),所以實際執行的時候會去調用子類的“演奏”方法。因此,究竟是該拉還是該彈還是該吹,指揮家不必在意,這個判斷由java虛擬機完成了。
這個就是一個多態的應用。
再擴展一下,假設以后又多了一種樂器,架子鼓也來了。同樣,架子鼓也是一種樂器。如果不用多態,那么指揮家的代碼也又要改了,就要說“架子鼓打起來”,而用多態的話就不用改啦,仍然是“樂器們都演奏起來”。你體會到了嗎?
【"引用"與多態的關系筆試經驗】相關文章:
筆試經驗:筆試內容準備09-02
故宮筆試經驗05-07
長虹筆試經驗12-19
銀監會筆試經驗12-18
招商筆試經驗12-18
微軟筆試經驗12-07
求職筆試經驗12-07
蘇寧筆試經驗筆試寫作08-31
工行招聘筆試題型分析與經驗的總結09-24