1.引用類型的轉(zhuǎn)換是由系統(tǒng)自動(dòng)完成,不需要程序員明確聲明。轉(zhuǎn)換時(shí)在編譯期執(zhí)行,而不是等到運(yùn)行期再執(zhí)行。
2.引用類型的轉(zhuǎn)換在賦值、方法調(diào)用、方法返回情況下均會(huì)發(fā)生。
3.合法的轉(zhuǎn)型原則是一個(gè)子類的對(duì)象可以被一個(gè)超類的引用變量所引用。這種轉(zhuǎn)換時(shí)安全的。
具體規(guī)則如下:
(1)類可以轉(zhuǎn)換為類和接口,但是不能轉(zhuǎn)換為數(shù)組。如果轉(zhuǎn)換為類,則轉(zhuǎn)換的目標(biāo)類必須是被轉(zhuǎn)換類的超類。如果轉(zhuǎn)換為接口,則被轉(zhuǎn)換類必須實(shí)現(xiàn)了轉(zhuǎn)換的目標(biāo)接口。
(2)接口可以被轉(zhuǎn)換為類和接口,但是不能轉(zhuǎn)換為數(shù)組。如果轉(zhuǎn)換為類,則轉(zhuǎn)換的目標(biāo)類必須是Object類。如果轉(zhuǎn)換為接口,則轉(zhuǎn)換的目標(biāo)接口必須是被轉(zhuǎn)換接口的超接口。
(3)數(shù)據(jù)可以被轉(zhuǎn)換為類、接口或數(shù)組。如果轉(zhuǎn)換為類,則轉(zhuǎn)換的目標(biāo)類必須是Object類。如果轉(zhuǎn)換為接口,則轉(zhuǎn)換的目標(biāo)接口必須是Cloneable接口或Serializable接口。如果轉(zhuǎn)換為數(shù)據(jù),則被轉(zhuǎn)換數(shù)組的元素類型必須可以被轉(zhuǎn)換為目標(biāo)數(shù)組的元素類型。