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

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

java核心技術中一個關于數組的例子不理解,請教大家

java核心技術中一個關于數組的例子不理解,請教大家

慕工程0101907 2019-05-03 10:19:01
Person是Employer的父類,Employer有個新方法setBonus,代碼如下Employer[] emprs ={new Employer("張三"),new Employer("李四")};               Person[] ps =emprs;    ps[0] = new Person("小明");//運行時該行報錯ArrayStoreException emprs[0].setBonus(2000);書中給出的解釋是要保持數組中的元素對象類型一致,我不理解的是ps定義的元素的類型是Person,為什么在這里不能ps[0] = new Person("小明"),ps[0]不是只是對new Person("小明")的一個引用嗎?他又不是Employer類型,我去給它賦值為Person類型有什么不可?另外以上代碼如果不用數組的形式,就是兩個對象這么操作下,是沒有錯誤的??赡芪乙陨系睦斫獗旧碛绣e誤,請大家指教指正。
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

emprs[0] 和 ps[0]這兩個引用都指向的是 Employer對象,現在你要把ps[0]指向的對象皇城person對象,那么emprs[0]也會執行這個對象,而emprs[0]是Emloyer對象,這就成了“子類的引用執行父類對象”,這是不可以的。所以報錯。


查看完整回答
反對 回復 2019-05-06
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

有錯別字,重新說一次:

emprs[0]和 ps[0]這兩個引用都指向了Employer對象,現在你要把ps[0]指向的對象換成person對象,emprs[0]也會同時修改為指向該對象。而emprs[0]是Emloyer對象,這就成了“子類的引用執行父類對象”,這是不可以的。所以報錯。


查看完整回答
反對 回復 2019-05-06
  • 3 回答
  • 0 關注
  • 469 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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