亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中instanceof運算符的問題?

Java中instanceof運算符的問題?

小農的奮斗 2016-09-10 16:56:20
Calendar?calendar?=?Calendar.getInstance(); System.out.println("calendar?is?an?instance?of?GregorianCalendar?:?"?+?(calendar?instanceof?GregorianCalendar));為什么結果是"true"呢?搜索了幾個小時也沒搞明白。
查看完整描述

4 回答

已采納
?
摩訶迦葉

TA貢獻146條經驗 獲得超54個贊

進去看源碼啊。。? 你是認為Calendar.getInstance();拿到的是Calendar類型的,所以以為應該返回false吧?

其實他返回的就是一個GregorianCalendar類型的。? 用的是父類的引用罷了。? 多看看源碼吧

查看完整回答
1 反對 回復 2016-09-10
  • 小農的奮斗
    小農的奮斗
    你好,非常感謝你的回答。之前看了源代碼,可惜沒看仔細。確實像你說的,父類引用指向了子類對象。
?
JustWannaHugU

TA貢獻452條經驗 獲得超796個贊

補充一下:GregorianCalendar?是 Calendar 的一個具體子類,instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。

查看完整回答
1 反對 回復 2016-09-10
?
dky

TA貢獻93條經驗 獲得超26個贊

,instanceof 判斷該對象的具體類型是否是你猜測的類型,是一種猜測語法,例如,你看到一個蒙面俠jack,你說他是黑人,黃種人,白種人?猜對了就和true,否則false,

??人類 ?Person, 黑人BlackPerson ?,黃種人YellowPerson,白人WhitePerson,都extends Person,

你可以這么猜

if(jack instanceof BlackPerson){

當jack是黑人的時候要干嘛

}else if(ack instanceof?YellowPerson){

當jack是黃種人的時候要干嘛

}

查看完整回答
反對 回復 2016-09-10
  • 4 回答
  • 1 關注
  • 1832 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號