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

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

子類繼承父類的全部成員,子類也可以另寫獨有方法,那子類的范圍不應該大于父類嗎?

子類繼承父類的全部成員,子類也可以另寫獨有方法,那子類的范圍不應該大于父類嗎?

咖喱炒飯 2017-02-03 14:18:02
在JAVA入門第二季4-2“多態中的引用類型轉化”課程中,老師將父類Animal轉換為子類Dog稱為向下類型轉換,子類轉換為父類稱為向上類型轉換并用比喻“父類像水壺,子類像水杯,父類轉換為子類就類似于將水壺里的水倒入水杯中,可能裝不下,是有風險的,稱為向下類型轉換;子類轉換為父類就類似于將水杯里的水倒入水壺中,是沒有風險的,稱為向上類型轉換。”聯想到學習變量時的強制類型轉換:double->int時是有風險的,需要做強制類型轉換,會丟棄部分數據,因為double的范圍大于int(這句話不太嚴謹,但我大概是這樣理解的)回歸正題,子類繼承父類的全部成員,包括變量、方法,子類還可以另寫父類沒有的方法;也就是說,父類有的子類都有,父類沒有的子類也可以另寫?那為什么還將父類比喻成大水壺,子類比喻成小水杯呢?子類的范圍不是大于父類的嗎?(父類有的全都有,父類沒有的也能另寫)那為何,大范圍Dog->小范圍Animal無須多慮?為何小Animal->大Dog時會有風險,必須強制轉換?Animal小于Dog,小->大(int->double)會有風險?是老師的比喻不恰當,還是我的理解哪里出了問題,子類繼承父類的所有成員,應當理解成子類double,父類int嗎?困惑,感謝解答
查看完整描述

3 回答

已采納
?
郝然

TA貢獻12條經驗 獲得超10個贊

其實是你對對象的理解問題,這的說不知道你能不能明白,就用你舉的例子,動物的范圍大于狗,也就是父類范圍大于子類。 而你說的父類有的子類都有還可以有特有的,這和你上面說的范圍不是一個意義的詞,比如狗有你定義的動物的全部特征和方法,還有自己專屬于狗的特征和方法,,這并不是單純的范圍而是對象的特性與共性,小范圍的特征肯定是多余大范圍的共同特征的 double和int是基本類型不是對象,不存在子父類繼承關系 而Double和Integer也就是它們的包裝類同是Number的子類,是兩個有共性的個體不存在繼承關系 純手打,如果能明白請采納
查看完整回答
2 反對 回復 2017-02-03
  • 咖喱炒飯
    咖喱炒飯
    這樣講明白多了,自己也想了很久,差不多弄明白了 3Q 感謝~
  • 郝然
    郝然
    不客氣,共勉
  • 3 回答
  • 0 關注
  • 2578 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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