作為Java的第三大特性--多態,大家肯定很熟悉了,但是對於這個抽象的概念相信總有一些模糊,think in Java 在本章做了很多的解釋,具體講解了一下三個問題。
1.多态解决了什么问题? 2.什么是多态? 3.多态的扩展
多態解決了type的解耦問題。多態使我們不用去關注具體的類型是什麼,多型態的設計就是為了讓我們忘記類型這一回事。因為我們不用專注於具體的類型,所以很多程式碼我們都可以重複使用,我們可以使用一段程式碼來解決類似的問題。這在我們開發過程中有很大的作用,這個解耦使我們每一層的使用牽連減少。總的來說多型解決的問題就是type的解耦問題。在思想上來說,就是讓我們忘記類型。
當我說出這個問題的時候大家可能會下意識的以為我要進行一些很抽象性、很概念性的講解,實際我想說明的並不是這些概念性的東西,這些直接百度即可。那麼回到正題,什麼是多態?多態其實也有一些其他的叫法,我比較喜歡其中一種,運行時綁定。
在講解這個字的時候,首先我們來了解綁定。綁定分為運行前綁定和運行時綁定。運行前綁定就是在程式沒有綁定的時候程式就已經知道要使用的這個方法的具體類型是哪一個了。相反,運行時綁定就是程式在運行前不知道具體使用的方法的類型,只有運行時知道具體使用的方法類型。這樣也就實現了不用知道具體的Type的效果。
Java的整體機制就是使用執行時間綁定的。除了屬性和私人和靜態方法。
我們知道多型態只能控制父類別的方法,對於子類別擴展開來的方法是不能進行操作的,但是我們肯定會遇到這種情況。那麼在這個時候我們就不能再使用向上轉換了,使用向下轉換。但是這裡面有一個問題,就是我們不知道這個類型是不是這樣你轉換的類型,會出現轉換出錯的問題,這個在c 裡面是不安全的,但是Java裡面有一個機制,就是在向下轉換的時候一定要強制轉換檢查,這樣就可以達到安全控制,如果不是會報一個ClassCastException的錯誤。
相關推薦:
以上是Java的第三大特性--多態的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!