第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Java里多態(tài)在代碼里是如何實現(xiàn)父類引用指向子類對象的,沒有繼承為何不行?

Java里多態(tài)在代碼里是如何實現(xiàn)父類引用指向子類對象的,沒有繼承為何不行?

詭圣 2016-12-28 15:05:30
//定義一個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中是不成立的。子類和父類其實就是兩個類型,只有兩個類有了繼承關系,才能進行相互的轉換,也就是你說的地址賦值(可以這么理解)。
查看完整回答
反對 回復 2016-12-28
?
蜂之谷

TA貢獻564條經(jīng)驗 獲得超863個贊

多態(tài)的條件:

1.繼承

2.重寫

3.父類引用指向子類對象(向上轉型)

查看完整回答
反對 回復 2016-12-28
  • 2 回答
  • 0 關注
  • 2242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號