課程
/后端開發
/Java
/Java入門第二季 升級版
這兩段代碼的區別在哪里,運行結果一樣
human log1=new Chinese();??log1.say();??human log2=new American();??log2.say();
-------------------------------
Chinese p=new Chinese();
p.say();
American p2=new American();
p2.say();
2018-03-31
源自:Java入門第二季 升級版 11-2
正在回答
Chinese p=new Chinese()是本類引用指向本類對象;
human log1=new Chinese()是父類的引用指向子類對象,當然父類的引用也可以指向本類對象;這就是引用的多態。
human 是一個抽象類,抽象類是不能實例化的,只能被繼承重載。 他做了工作把子類賦值給抽象類的時候 類型轉換了下 ,其實log1 和 log2 都是子類, 所以結果一樣。 但是如果你 寫??human log1=new human?(); 會報錯
stephen_hj 提問者
qq_這領土上那難忘之日的觸感_0 回復 stephen_hj 提問者
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答我的代碼作業
1 回答作業代碼,傻瓜版
2 回答作業的代碼有嗎?
3 回答附帶輸入參數的作業代碼
1 回答輸出問題+screen與+screen+區別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-07-21
Chinese p=new Chinese()是本類引用指向本類對象;
human log1=new Chinese()是父類的引用指向子類對象,當然父類的引用也可以指向本類對象;這就是引用的多態。
2018-03-31
human 是一個抽象類,抽象類是不能實例化的,只能被繼承重載。 他做了工作把子類賦值給抽象類的時候 類型轉換了下 ,其實log1 和 log2 都是子類, 所以結果一樣。 但是如果你 寫??human log1=new human?(); 會報錯