欧美成人永久免费_欧美日本五月天_A级毛片免看在线_国产69无码,亚洲无线观看,精品人妻少妇无码视频,777无码专区,色大片免费网站大全,麻豆国产成人AV网,91视频网络,亚洲色无码自慰

當(dāng)前位置:網(wǎng)站首頁(yè) >> 作文 >> 最新java強(qiáng)制類(lèi)型轉(zhuǎn)換原理通用

最新java強(qiáng)制類(lèi)型轉(zhuǎn)換原理通用

格式:DOC 上傳日期:2023-04-29 12:20:14
最新java強(qiáng)制類(lèi)型轉(zhuǎn)換原理通用
時(shí)間:2023-04-29 12:20:14     小編:zdfb

每個(gè)人都曾試圖在平淡的學(xué)習(xí),、工作和生活中寫(xiě)一篇文章,。寫(xiě)作是培養(yǎng)人的觀察,、聯(lián)想,、想象、思維和記憶的重要手段,。范文書(shū)寫(xiě)有哪些要求呢,?我們?cè)鯓硬拍軐?xiě)好一篇范文呢?下面我給大家整理了一些優(yōu)秀范文,,希望能夠幫助到大家,,我們一起來(lái)看一看吧,。

java強(qiáng)制類(lèi)型轉(zhuǎn)換原理篇一

在java中強(qiáng)制類(lèi)型轉(zhuǎn)換分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型兩種,這里我們討論的后者,,也就是引用數(shù)據(jù)類(lèi)型的強(qiáng)制類(lèi)型轉(zhuǎn)換,。那么強(qiáng)制類(lèi)型轉(zhuǎn)換的知識(shí)要點(diǎn)有哪些,?快跟yjbys小編一起來(lái)看看吧!

在java中由于繼承和向上轉(zhuǎn)型,,子類(lèi)可以非常自然地轉(zhuǎn)換成父類(lèi),,但是父類(lèi)轉(zhuǎn)換成子類(lèi)則需要強(qiáng)制轉(zhuǎn)換。因?yàn)樽宇?lèi)擁有比父類(lèi)更多的屬性,、更強(qiáng)的功能,,所以父類(lèi)轉(zhuǎn)換為子類(lèi)需要強(qiáng)制。那么,,是不是只要是父類(lèi)轉(zhuǎn)換為子類(lèi)就會(huì)成功呢?其實(shí)不然,,他們之間的強(qiáng)制類(lèi)型轉(zhuǎn)換是有條件的'。

當(dāng)我們用一個(gè)類(lèi)型的構(gòu)造器構(gòu)造出一個(gè)對(duì)象時(shí),,這個(gè)對(duì)象的類(lèi)型就已經(jīng)確定的,,也就說(shuō)它的本質(zhì)是不會(huì)再發(fā)生變化了。在java中我們可以通過(guò)繼承,、向上轉(zhuǎn)型的關(guān)系使用父類(lèi)類(lèi)型來(lái)引用它,,這個(gè)時(shí)候我們是使用功能較弱的類(lèi)型引用功能較強(qiáng)的對(duì)象,這是可行的,。但是將功能較弱的類(lèi)型強(qiáng)制轉(zhuǎn)功能較強(qiáng)的對(duì)象時(shí),,就不一定可以行了,。

舉個(gè)例子來(lái)說(shuō)明。

比如系統(tǒng)中存在father,、son兩個(gè)對(duì)象。首先我們先構(gòu)造一個(gè)son對(duì)象,,然后用一個(gè)father類(lèi)型變量引用它:

father father = new son();

在這里son 對(duì)象實(shí)例被向上轉(zhuǎn)型為father了,但是請(qǐng)注意這個(gè)son對(duì)象實(shí)例在內(nèi)存中的本質(zhì)還是son類(lèi)型的,,只不過(guò)它的能力臨時(shí)被消弱了而已。

如果我們想變強(qiáng)怎么辦?將其對(duì)象類(lèi)型還原!

son son = (son)father;

這條語(yǔ)句是可行的,,其實(shí)father引用仍然是father類(lèi)型的,,只不過(guò)是將它的能力加強(qiáng)了,將其加強(qiáng)后轉(zhuǎn)交給son引用了,,son對(duì)象實(shí)例在son的變量的引用下,,恢復(fù)真身,可以使用全部功能了,。

前面提到父類(lèi)強(qiáng)制轉(zhuǎn)換成子類(lèi)并不是總是成功,,那么在什么情況下它會(huì)失效呢?

當(dāng)引用類(lèi)型的真實(shí)身份是父類(lèi)本身的類(lèi)型時(shí),強(qiáng)制類(lèi)型轉(zhuǎn)換就會(huì)產(chǎn)生錯(cuò)誤,。例如:

father father = new father();

son son = (son) father;

這個(gè)系統(tǒng)會(huì)拋出classcastexception異常信息,。

所以編譯器在編譯時(shí)只會(huì)檢查類(lèi)型之間是否存在繼承關(guān)系,有則通過(guò);而在運(yùn)行時(shí)就會(huì)檢查它的真實(shí)類(lèi)型,,是則通過(guò),,否則拋出classcastexception異常。

所以在繼承中,,子類(lèi)可以自動(dòng)轉(zhuǎn)型為父類(lèi),,但是父類(lèi)強(qiáng)制轉(zhuǎn)換為子類(lèi)時(shí)只有當(dāng)引用類(lèi)型真正的身份為子類(lèi)時(shí)才會(huì)強(qiáng)制轉(zhuǎn)換成功,否則失敗,。

s("content_relate");

全文閱讀已結(jié)束,,如果需要下載本文請(qǐng)點(diǎn)擊

下載此文檔
你可能感興趣的文章
a.付費(fèi)復(fù)制
付費(fèi)獲得該文章復(fù)制權(quán)限
特價(jià):5.99元 10元
微信掃碼支付
已付款請(qǐng)點(diǎn)這里
b.包月復(fù)制
付費(fèi)后30天內(nèi)不限量復(fù)制
特價(jià):9.99元 10元
微信掃碼支付
已付款請(qǐng)點(diǎn)這里 聯(lián)系客服