Java的第三大特性--多態的理解

來源:互聯網
上載者:User
作為Java的第三大特性--多態,大家肯定很熟悉了,但是對於這個抽象的概念相信總有一些模糊,think in Java 在本章做了很多的解釋,具體講解了一下三個問題。
1.多態解決了什麼問題?2.什麼是多態?3.多態的擴充

多態解決了什麼問題?

多態解決了type的解耦問題。多態使我們不用去關注具體的類型是什麼,多態的設計就是為了讓我們忘記類型這一回事。因為我們不用關注具體的類型,所以很多代碼我們都可以複用,我們可以使用一段代碼解決類似的問題。這在我們開發過程中有很大的作用,這個解耦使我們每一層的使用牽連減小。總的來說多態解決的問題就是type的解耦問題。在思想上來說,就是讓我們忘記類型。

什麼是多態?

當我說出這個問題的時候大家可能會下意識的以為我要進行一些很抽象性、很概念性的講解,實際我想說明的並不是這些概念性的東西,這些直接百度即可。那麼回到正題,什麼是多態?多態其實也有一些其他的叫法,我更喜歡其中一種,運行時綁定。
在講解這個詞的時候,首先我們來瞭解一下綁定。綁定分為運行前綁定和運行時綁定。運行前綁定就是在程式沒有綁定的時候程式就已經知道要使用的這個方法的具體類型是哪一個了。相反,運行時綁定就是程式在運行前不知道具體使用的方法的類型,只有運行時知道具體使用的方法類型。這樣也就實現了不用知道具體的Type的效果。
Java的整體機制就是使用運行時綁定的。除了屬性和私人和靜態方法。

多態的擴充

我們知道多態只能控制父類的方法,對於子類擴充開來的方法是不能進行操作的,但是我們肯定會遇到這種情況。那麼在這個時候我們就不能再使用向上轉換了,使用向下轉換。但是這裡面有一個問題,就是我們不知道這個類型是不是這樣你轉化的類型,會出現轉換出錯的問題,這個在c++裡面是不安全的,但是Java裡面有一個機制,就是在向下轉換的時候一定要強制轉換進行檢查,這樣就可以達到安全控制,如果不是會報一個ClassCastException的錯誤。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.