java方法調用的綁定

來源:互聯網
上載者:User

將一個方法調用同一個方法主體串連到一起就稱為“綁定”(Binding)。若在程式運行以前執行綁定(由編譯器和連結程式,如果有的話),就叫作“早期繫結”。大家以前或許從未聽說過這個術語,因為它在任何程式化語言裡都是不可能的。C編譯器只有一種方法調用,那就是“早期繫結”。

上述程式最令人迷惑不解的地方全與早期繫結有關,因為在只有一個Instrument控制代碼的前提下,編譯器不知道具體該調用哪個方法。

解決的方法就是“後期綁定”,它意味著綁定在運行期間進行,以對象的類型為基礎。後期綁定也叫作“動態綁定”或“運行期綁定”。若一種語言實現了後期綁定,同時必須提供一些機制,可在運行期間判斷對象的類型,並分別調用適當的方法。也就是說,編譯器此時依然不知道對象的類型,但方法調用機制能自己去調查,找到正確的方法主體。不同的語言對後期綁定的實現方法是有所區別的。但我們至少可以這樣認為:它們都要在對象中安插某些特殊類型的資訊。

Java中綁定的所有方法都採用後期綁定技術,除非一個方法已被聲明成final。這意味著我們通常不必決定是否應進行後期綁定——它是自動發生的。
為什麼要把一個方法聲明成final呢?正如上一章指出的那樣,它能防止其他人覆蓋那個方法。但也許更重要的一點是,它可有效地“關閉”動態綁定,或者告訴編譯器不需要進行動態綁定。這樣一來,編譯器就可為final方法調用產生效率更高的代碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.