java 方法調用綁定

將一個方法調用同一個方法主體連接到一起就稱爲“綁定”(Binding)。若在程序運行以前執行綁定(由編
譯器和鏈接程序,如果有的話),就叫作“早期綁定”。大家以前或許從未聽說過這個術語,因爲它在任何
程序化語言裏都是不可能的。C 編譯器只有一種方法調用,那就是“早期綁定”。
上述程序最令人迷惑不解的地方全與早期綁定有關,因爲在只有一個Instrument 句柄的前提下,編譯器不知
道具體該調用哪個方法。
解決的方法就是“後期綁定”,它意味着綁定在運行期間進行,以對象的類型爲基礎。後期綁定也叫作“動
態綁定”或“運行期綁定”。若一種語言實現了後期綁定,同時必須提供一些機制,可在運行期間判斷對象
的類型,並分別調用適當的方法。也就是說,編譯器此時依然不知道對象的類型,但方法調用機制能自己去
調查,找到正確的方法主體。不同的語言對後期綁定的實現方法是有所區別的。但我們至少可以這樣認爲:
它們都要在對象中安插某些特殊類型的信息。
Java 中綁定的所有方法都採用後期綁定技術,除非一個方法已被聲明成final。這意味着我們通常不必決定
是否應進行後期綁定——它是自動發生的。
爲什麼要把一個方法聲明成final 呢?正如上一章指出的那樣,它能防止其他人覆蓋那個方法。但也許更重
要的一點是,它可有效地“關閉”動態綁定,或者告訴編譯器不需要進行動態綁定。這樣一來,編譯器就可
爲final 方法調用生成效率更高的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章