關鍵區別——早期綁定與後期綁定
早期綁定和後期綁定是與多態性相關的兩個概念。早期綁定發生在編譯時,後期綁定發生在運行時。早期綁定和後期綁定的關鍵區別在於早期綁定使用類信息來解析方法調用,而後期綁定使用對象來解析方法調用。
Java等編程語言支持面向對象編程(OOP)。它是一種允許使用對象構造程序或軟件的範例。軟件中有多個對象。這些對象彼此連接並使用方法傳遞消息。每個物體都有特性和行為。特徵由屬性或屬性描述。這些行為是用方法描述的。對象學生可以具有諸如姓名、年齡等特徵,並用屬性表示。目標學生可以有學習、閱讀等行為,並用方法來表徵。OOP的一個主要支柱是多態性。它允許一個對象以多種方式表現。早期綁定和後期綁定是多態性中的兩個概念。重載方法是使用早期綁定綁定綁定的。重寫的方法使用後期綁定進行綁定。
目錄
1.概述和主要區別
2. 什麼是早期綁定
3. 什麼是延遲綁定
4. 早期和晚期綁定的相似性
5. 並排比較-早期與晚期以表格形式裝訂
6. 摘要
什麼是早期綁定(early binding)?
在早期綁定中,類信息用於解析方法調用。早期綁定發生在編譯時。它也被稱為靜態綁定。在這個過程中,綁定發生在程序實際運行之前。重載方法是使用早期綁定綁定綁定的。參考以下程序。
根據上面的程序,Calculation類包含一個接受兩個整數值的add方法和一個接受兩個雙精度值的add方法。在主程序中,將創建類型為Calculation的對象。當向add方法傳遞兩個整數時,它將調用接受兩個整數的add方法。當向add方法傳遞兩個double值時,它將調用與兩個double值對應的方法。這個綁定過程發生在編譯時。所有需要的信息在運行前就知道了,提高了程序的效率和執行速度。
什麼是後期裝訂(late binding)?
在後期綁定中,對象用於解析方法調用。延遲綁定發生在運行時。它也被稱為動態綁定。在這個過程中,綁定發生在程序執行時。重寫的方法使用後期綁定進行綁定。參考以下程序。
根據上面的程序,類形狀有一個繪製方法。類圓類和三角形類擴展了形狀類。因此,這兩個類可以繼承Shape類的屬性和方法。Shape類是基類。類是派生類和圓類。類圓和類三角形也有自己的實現的draw方法。因此,Shape類中的draw方法被派生類的draw方法重寫。
在主程序中,創建一個Shape類型的參考變量s。在編譯時,編譯器將只引用基類draw方法。在運行時,將執行不同的繪製方法。首先,s將指向Shape類型的對象。因此,調用了Shape類的draw方法。然後s將指向Circle類型的對象,並調用Circle類的draw方法。最後,s將指向Triangle類型的對象,並調用Triangle類中的draw方法。方法的調用取決於對象。因此,該對象用於解決後期綁定中的方法調用。綁定所需的信息是在運行時提供的,因此與早期綁定相比,執行速度較慢。
什麼是早期綁定與後期綁定的相似性(the similarity between early binding and late binding)?
- 早期綁定和後期綁定都與多態性有關,多態性是OOP的支柱。
早期綁定(early binding)和後期裝訂(late binding)的區別
早期綁定與後期綁定 | |
使用類信息來解析在編譯時發生的方法調用的過程稱為早期綁定。 | 使用對象來解析在運行時發生的方法調用的過程稱為後期綁定。 |
裝訂時間 | |
早期綁定發生在編譯時。 | 延遲綁定發生在運行時。 |
功能 | |
早期綁定使用類信息來解析方法調用。 | 後期綁定使用對象來解析方法調用。 |
同義詞 | |
早期綁定也稱為靜態綁定。。 | 後期綁定也稱為動態綁定。 |
發生 | |
重載方法是使用早期綁定綁定綁定的。 | 重寫的方法使用後期綁定進行綁定。 |
執行速度 | |
早期綁定的執行速度更快。 | 後期綁定的執行速度較低。 |
總結 - 早期的(early) vs. 後期裝訂(late binding)
OOP通常用於軟件開發。OOP的一個主要支柱是多態性。早綁定和晚綁定都與此相關。早期綁定發生在編譯時,後期綁定發生在運行時。在方法重載中,使用早期綁定進行綁定。在方法重寫中,使用後期綁定進行綁定。早期綁定和後期綁定的區別在於,早期綁定使用類信息來解析方法調用,而後期綁定使用對象來解析方法調用。