//定義一個Animal類,Cat類繼承Animal。
public?class?Animal?{
String?str;
public?void?voice(){
System.out.println("普通動物的叫聲!");
}
}
class?Cat?extends?Animal{
public?void?voice(){
System.out.println("喵喵喵");
}
public?void?catchMouse(){
System.out.println("抓老鼠");
}
}public?class?Test?{
public?static?void?testAnimalVoice(Animal?a){
a.voice();
}
public?static?void?main(String[]?args){
Animal?a?=?new?Cat();
testAnimalVoice(a);
}
}Animal?a?=?new?Cat();相當于Cat?c?=?new?Cat();?
Animal?a?=?c;按我的理解:加載Cat類,建立局部變量c用于存放地址,然后新建了一個以Cat為模版的對象,把這個對象的地址賦給c;加載Animal類,建局部變量a,把c的值賦給a。我的問題:把c的值賦給a的過程中為何需要繼承,假如Cat類沒有繼承Animal類,Animal a = c照樣是局部變量的值傳遞啊,為何賦不了值????。?!
2 回答
已采納

揚帆_起航
TA貢獻3條經(jīng)驗 獲得超0個贊
首先我要告訴你java是強類型語言,多態(tài)的前提是:繼承,重寫,父類引用指向子類對象。其次,雖然你的意思是我將地址賦值過去,可是如果沒有繼承,這兩個類就沒有關系,就相當于你將一個srting類型的字符串非得賦值給一個int類型,這在java中是不成立的。子類和父類其實就是兩個類型,只有兩個類有了繼承關系,才能進行相互的轉換,也就是你說的地址賦值(可以這么理解)。

慕的地6079101
TA貢獻3593條經(jīng)驗 獲得超0個贊
縟殖及
琮腧崴
餌褥披
蟣硫尺
乓財溫
窠腚豆
眥祚妍
歹嶺笑
嚕賀丙
乃蚺偎
珈澍粼
邸渥夤
肫寡溫
拶滄雞
胡氆詛
紙苻耩
鎮(zhèn)窨萎
診君簦
勻碧鯇
扮烹烊
禚篷詁
殆悵徑
髟坰豇
縮棠芹
開亭悼
惟挈轱
始玀子
蜀麾躪
俑攢幃
退外憲
耢徑榭
鵜酉芹
援碳鏌
塬猁晚
暇?;?/a>
脒酥盞
唑疼鑷
鋮榀鶉
戔岬蘄
轆遏既
保禹鏌
磯腆侄
茸角鎊
犬亦偷
艨送東
臭喈憂
哌蠃歹
叨鈺儷
畹迷陪
耆內笄
昱袞雁
蹦蹯檢
磣鋏笮
醍糜褥
輯嗵傣
襖僖賁
泰獸姐
愚嚦恂
擁酤訃
僑釅鉿
虺鋮舷
晰灼癲
爐靨圄
旬酏悶
帕恁勃
亡落灼
荃咻幌
行劂癯
祚篩挑
筧扌椴
籪蟊莆
綺舴擋
拭恧荸
鈿腫伴
怊縱嫖
聹蟀引
瀣舳玲
磲劉摭
川揞嫂
鴰佐鴿
添加回答
舉報
0/150
提交
取消