成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

polymorphism

crossoverJie / 2787人閱讀

摘要:總的來說多態(tài)解決的問題就是的解耦問題。相反,運行時綁定就是程序在運行前不知道具體使用的方法的類型,只有運行時知道具體使用的方法類型。的整體機制就是使用運行時綁定的。

作為Java的第三大特性--多態(tài),大家肯定很熟悉了,但是對于這個抽象的概念相信總有一些模糊,think in Java 在本章做了很多的解釋,具體講解了一下三個問題。
1.多態(tài)解決了什么問題?
2.什么是多態(tài)?
3.多態(tài)的擴展
多態(tài)解決了什么問題?

多態(tài)解決了type的解耦問題。多態(tài)使我們不用去關(guān)注具體的類型是什么,多態(tài)的設(shè)計就是為了讓我們忘記類型這一回事。因為我們不用關(guān)注具體的類型,所以很多代碼我們都可以復(fù)用,我們可以使用一段代碼解決類似的問題。這在我們開發(fā)過程中有很大的作用,這個解耦使我們每一層的使用牽連減小??偟膩碚f多態(tài)解決的問題就是type的解耦問題。在思想上來說,就是讓我們忘記類型。

什么是多態(tài)?

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

多態(tài)的擴展

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76664.html

相關(guān)文章

  • JavaScript面向?qū)ο缶幊?/b>

    摘要:基本概念面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實世界模型的一種編程模式。使用面向?qū)ο缶幊淌菫榱舜龠M更好的靈活性和可維護性。面向?qū)ο笈c面向過程比較,面向過程更注重過程。 1:基本概念 面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實世界模型的一種編程模式。 這句話的意思是:每個對象能夠接受信息,處理數(shù)據(jù)和發(fā)送消息給其他對象;這就意味著在這個編程模式下,每一個對象都是一個獨立的個體,它可以接收,可以處理,...

    Carbs 評論0 收藏0
  • java-工具類Collections和Arrays的設(shè)計和區(qū)別

    摘要:排序的算法是歸并排序。舉個例子,的算法可以不是使用歸并排序,但是該算法一定要是穩(wěn)定的。這個類是的一部分。官方這個類只包含操作或返回集合的靜態(tài)方法。具體來說是,第一步,先把集合轉(zhuǎn)換為數(shù)組,第二步,調(diào)用。和沒有什么區(qū)別,只是傳參有點不同。 Arrays 1.作用看類的名字,就知道是對數(shù)組(數(shù)據(jù)類型[])進行各種操作。例如,排序、查找、復(fù)制等。 排序的算法是歸并排序。查找的算法是二分查找。復(fù)...

    mj 評論0 收藏0
  • [CS101] Programming Languages and OOP 編程語言及面向?qū)ο蠡A(chǔ)題

    摘要:編程語言及面向?qū)ο蠡A(chǔ)題 編程語言及面向?qū)ο蠡A(chǔ)題 Design Pattern What is singleton? Whats its cons and pros? How to implement it?Definition: Singleton pattern is a design pattern that ensure that only one instance of a...

    Drinkey 評論0 收藏0
  • Java Interview Questions (1)

    What is Java? Java is a high-level platform-independent object oriented programming language. List some features of Java? Object Oriented, Platform Independent, Multi-threaded, Interpreted, Robust, pa...

    xuxueli 評論0 收藏0
  • [譯] PureScript: 一門編譯到 JavaScript 的 Haskell 方言

    摘要:原文是一門編譯到的強類型靜態(tài)類型語言它的功能受到的激發(fā)并且使用編寫其目標(biāo)是編譯到同時保持清潔跟可讀而且根據(jù)作者所說具備跟其他編譯到的語言相互操作的能力繼承了當(dāng)中一些突出的功能其中有類型推斷允許在任何可能的地方減少類型聲明的書寫一種類型構(gòu) 原文: http://www.infoq.com/news/2014/09/purescript-haskell-javascript PureS...

    陳江龍 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<