用instanceof類型轉(zhuǎn)換是不是只能轉(zhuǎn)換一個(gè)對(duì)象?
? ? ?Jiaoche jiaoche = new Jiaoche();
feiji plane = new feiji();
? ? Jiaotonggongju jiaotonggongju = jiaoche;
if(jiaotonggongju instanceof feiji) {
feiji plane2 = (feiji) jiaotonggongju;
}else {
System.out.println("123");
}
if(jiaotonggongju instanceof Jiaoche) {
Jiaoche jiaoche2 = (Jiaoche)jiaotonggongju;}
else {System.out.println("321");}
這樣子只能轉(zhuǎn)換Jiaoche,feiji就轉(zhuǎn)換不了了,當(dāng)我兩種都轉(zhuǎn)換的時(shí)候就報(bào)錯(cuò)了
?
2019-07-20
instanceof只是判斷一個(gè)對(duì)象是否某個(gè)類或者子類的對(duì)象或者實(shí)例,換句話說instanceof只是用來規(guī)避有風(fēng)險(xiǎn)或出錯(cuò)的強(qiáng)制轉(zhuǎn)換,而不是轉(zhuǎn)換的本身。對(duì)象之間能否轉(zhuǎn)換而風(fēng)險(xiǎn)或出錯(cuò)取決于對(duì)象之間的相互關(guān)系。