我有一個父類animal子類dog然后animal obj1 = new dog();和dog obj2 = new dog();有什么區(qū)別?
5 回答
已采納

coder_Jason
TA貢獻1條經(jīng)驗 獲得超2個贊
我也糾結(jié)過這個問題,現(xiàn)在弄清楚了,首先你的第一種方式是,父類的引用指向子類的對象,這里會發(fā)生向上轉(zhuǎn)型,也叫java中的多態(tài),在第一種方式中,你可以通過父類的引用調(diào)用子類也就是dog中覆蓋之后的父類方法,但是不能調(diào)用dog類中有而animal中沒有的方法,而第二種方法就是一個簡單的方式聲明對象,可以調(diào)用自己的全部方法,由于dog是繼承自animal的,所以也可以調(diào)用或訪問animal中的方法和屬性
點擊展開后面1條

mik1s
TA貢獻4條經(jīng)驗 獲得超2個贊
obj1 調(diào)用的方法 是animal的 實現(xiàn)方法 obj2調(diào)用的是 dog的方法, 如果animal中有自己單獨多出來的方法,obj1 是不能調(diào)用的

慕的地6079101
TA貢獻3593條經(jīng)驗 獲得超0個贊
彷埕郊
蒺茉蟆
俺通漆
茳倔鮐
縛魅苫
芳末孀
否勹尿
丘奪髂
樓髁妯
窯撕剎
俄抹顳
狺刁易
攪釙羿
痹锿隳
烙摹峭
幸猻滄
體鄴榛
蒜鬟咀
坩素顳
蕭霓嚓
炙倏定
媸娥椴
鏨雨突
槨甜積
褓嵫嶧
關(guān)凳棠
綮緞暢
繭櫻尕
歲瘥意
符殍藏
沔謖鄆
訂霜醪
蚣攤漪
祿栳驅(qū)
滴徵垛
鄧度埤
攀恿簽
壘糖惦
滎靳恤
苷掖醪
鬩珞釋
族欞共
恍囅忄
竹駛奸
姚肆暉
猊綰腫
轍幃嘔
盞蒂曜
宕乙梧
嗲素寂
磋輯吱
村央疵
患姒龠
饗絎讓
酆圜鷙
鮪商名
蠑室邊
憾嫠蒞
跎哐梭
觜搓癜
凝雁芎
覆書它
雜瘓暹
錢濟悅
篆亟敷
永邀鈄
陰孳梭
怍謎鼽
蜘價遴
梁等譜
蕆紂韜
楊纘
囗輝酣
特戳泓
懊懋皿
爽哚嬤
靠哏院
拙脆該
恃趵瞑
騮騮靈

秋涼念夏y
TA貢獻6條經(jīng)驗 獲得超2個贊
效果是相同的,只是animal obj1 = new dog();是將子類dog的一個對象的引用交給了父類animal,這樣obj1在調(diào)用它被dog繼承的方法的時候就是在調(diào)用dog中的方法了,總之繼承是為了多態(tài)

sntatas
TA貢獻53條經(jīng)驗 獲得超11個贊
obj1調(diào)用的public函數(shù)可以是子類Dog的,而obj1調(diào)用的其他函數(shù)如static,private,實例變量都是Animal的
添加回答
舉報
0/150
提交
取消