版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、多態(tài)中的方法是可以重寫的,但是變量不能重寫,你運(yùn)行一下這個看看結(jié)果就知道了,父類聲明,子類實例化,用這個對象去調(diào)方法是子類的方法,但是去調(diào)屬性,就是父類的了。publicclassApublicStringa=“a“publicvoidA()System.out.println(“我是A類中的A方法“)publicclassBextendsApublicStringa=“b“publicvoidA()System.out.println
2、(“我是B類中的A方法“)publicstaticvoidmain(String[]args)Ab=newB()b.A()System.out.println(b.a)結(jié)果:我是B類中的A方法aJavaava向上轉(zhuǎn)型之后調(diào)用子類的同名變量向上轉(zhuǎn)型之后調(diào)用子類的同名變量方法的問題方法的問題(多態(tài))(多態(tài))201210170個評論表示定義了一個Father類型的引用,指向新建的Son類型的對象。由于Son是繼承自它的父類Father,所以F
3、ather類型的引用是可以指向Son類型的對象的。那么這樣做有什么意義呢?因為子類是對父類的一個改進(jìn)和擴(kuò)充,所以一般子類在功能上較父類更強(qiáng)大,屬性較父類更獨特,定義一個父類類型的引用指向一個子類的對象既可以使用子類強(qiáng)大的功能,又可以抽取父類的共性。所以,父類類型的引用可以調(diào)用父類中定義的所有屬性和方法,而對于子類中定義而父類中沒有的方法,它是無可奈何的;因此s.name調(diào)用父類的屬性!f2方法父類沒有,出錯!同時,父類中的一個方法只有在
4、在父類中定義而在子類中沒有重寫的情況下,才可以被父類類型的引用調(diào)用;對于父類中定義的方法,如果子類中重寫了該方法,那么父類類型的引用將會調(diào)用子類中的這個方法,這就我總結(jié)一下(向上轉(zhuǎn)型):1、同名字段的話是父類的。2、如果子類覆蓋了父類的方法,調(diào)用的是子類方法。3、如果父類沒有子類定義的方法,會編譯錯誤。哎,結(jié)果是知道了。能不能幫我理解一下這句話:對象的類型是由創(chuàng)建它的類決定的,而不是由聲明它的變量決定的。要是這樣的話,那Son的clas
5、s對象不是能夠查找出f2()嗎?回答記住哦,我們現(xiàn)在創(chuàng)建的是父類的引用指向子類Son的對象。子類中定義的方法f2在父類中不存在,所以用這父類的引用去調(diào)用他沒有的方法是錯誤的。對于多態(tài),可以總結(jié)它為:一、使用父類類型的引用指向子類的對象;二、該引用只能調(diào)用父類中定義的方法和變量;三、如果子類中重寫了父類中的一個方法,那么在調(diào)用這個方法的時候,將會調(diào)用子類中的這個方法;(動態(tài)連接、動態(tài)調(diào)用)四、變量不能被重寫(覆蓋),變量不能被重寫(覆蓋)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論