課程
/后端開發(fā)
/Java
/Java入門第二季
Phone phone1=new Nokia;與Nokia nokia=new Nokia;都可以調用call()跟send(),運行結果也一樣,那這兩者有什么區(qū)別與聯(lián)系?
2016-01-11
源自:Java入門第二季 10-3
正在回答
Phone是Nokia和Apple繼承的父類(下面只以Nokia說明)。
Phone phone1=new Nokia這種用法叫做“父類引用指向子類對象”,即聲明的是父類,實際指向的是子類的一個對象。由于Nokia是繼承自它的父類Phone,所以Phone類型的引用是可以指向Nokia類型的對象的。這就是“向上轉型”。
這種用法的優(yōu)點是使用者可以更關注父類能做什么,而不去關心子類是具體怎么做的。因為子類是對父類的一個改進和擴充,所以一般子類在功能上較父類更強大, 定義一個父類類型的引用指向一個子類的對象既可以使用子類強大的功能,又可以抽取父類的共性。你可以隨時替換一個子類,也就是隨時替換一個具體實現(xiàn),而不用修改其他。
前者是把子類轉成父類,稱為向上轉型,而不能把父類轉化為子類
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構中體會Java面向對象編程的奧妙
3 回答兩者的區(qū)別
2 回答這兩種有什么區(qū)別嗎?
2 回答equals與==有什么區(qū)別?
3 回答個人理解關于抽象類和接口的區(qū)別與聯(lián)系,
3 回答getter和setter這兩個有什區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-01-11
Phone是Nokia和Apple繼承的父類(下面只以Nokia說明)。
Phone phone1=new Nokia這種用法叫做“父類引用指向子類對象”,即聲明的是父類,實際指向的是子類的一個對象。由于Nokia是繼承自它的父類Phone,所以Phone類型的引用是可以指向Nokia類型的對象的。這就是“向上轉型”。
這種用法的優(yōu)點是使用者可以更關注父類能做什么,而不去關心子類是具體怎么做的。因為子類是對父類的一個改進和擴充,所以一般子類在功能上較父類更強大, 定義一個父類類型的引用指向一個子類的對象既可以使用子類強大的功能,又可以抽取父類的共性。你可以隨時替換一個子類,也就是隨時替換一個具體實現(xiàn),而不用修改其他。
2016-01-11
前者是把子類轉成父類,稱為向上轉型,而不能把父類轉化為子類