![java多態(tài)演講課件_第1頁(yè)](http://file4.renrendoc.com/view9/M00/10/1B/wKhkGWcoKp2AdLCeAACYC-8sl80870.jpg)
![java多態(tài)演講課件_第2頁(yè)](http://file4.renrendoc.com/view9/M00/10/1B/wKhkGWcoKp2AdLCeAACYC-8sl808702.jpg)
![java多態(tài)演講課件_第3頁(yè)](http://file4.renrendoc.com/view9/M00/10/1B/wKhkGWcoKp2AdLCeAACYC-8sl808703.jpg)
![java多態(tài)演講課件_第4頁(yè)](http://file4.renrendoc.com/view9/M00/10/1B/wKhkGWcoKp2AdLCeAACYC-8sl808704.jpg)
![java多態(tài)演講課件_第5頁(yè)](http://file4.renrendoc.com/view9/M00/10/1B/wKhkGWcoKp2AdLCeAACYC-8sl808705.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java
基礎(chǔ)知識(shí)多態(tài)www.安博思軟多態(tài)(Polymorphism)所謂多態(tài),是指把類(lèi)中具有相似功能的不同方法使用同一個(gè)方法名來(lái)實(shí)現(xiàn),從而可以使用相同的方式來(lái)調(diào)用這些具有不同功能的同名方法。簡(jiǎn)單來(lái)說(shuō)就是多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征。www.安博思軟彩色打印機(jī)打印機(jī)黑白打印機(jī)打印效果:彩色打印效果:黑白打印打印Java中的引用變量有兩個(gè)類(lèi)型,一個(gè)是編譯時(shí)的類(lèi)型,一個(gè)是運(yùn)行時(shí)的類(lèi)型,編譯時(shí)的類(lèi)型由聲明該變量時(shí)使用的類(lèi)型決定,運(yùn)行時(shí)的類(lèi)型由實(shí)際賦給該變量的對(duì)象決定。如果編譯時(shí)的類(lèi)型與運(yùn)行時(shí)的類(lèi)型不一致就會(huì)出現(xiàn)所謂的多態(tài)。(Polymorphism)www.為什么會(huì)出現(xiàn)多態(tài)?安博思軟www.編譯時(shí)多態(tài)性(靜態(tài)綁定)
對(duì)于多個(gè)同名方法,如果在編譯時(shí)能夠確定執(zhí)行同名方法中的哪一個(gè),則稱(chēng)為編譯時(shí)多態(tài)性。運(yùn)行時(shí)多態(tài)性(動(dòng)態(tài)綁定)如果在編譯時(shí)不能確定,只能在運(yùn)行時(shí)才能確定執(zhí)行多個(gè)同名方法中的哪一個(gè),則稱(chēng)為運(yùn)行時(shí)多態(tài)性。多態(tài)性有兩種:www.classTest
{
voidprint()
{
System.out.println(“hello”);
}
voidprint(Stringx)
{
System.out.println(“hello”+x);
}
publicstaticvoidmain(String[]args)
{
Testts=newTest();
ts.print();
ts.print(“jack”);
}
}
classTest
{
voidprint()
{
System.out.println("helloTest");
}
www.
classAextendsTest
{
voidprint()
{
System.out.println("helloA");
}
publicstaticvoidmain(String[]args)
{
Testa=newA();
a.print();
}
}
靜態(tài)綁定動(dòng)態(tài)綁定
可以看到一個(gè)類(lèi)中成員方法的重載,也就是一個(gè)靜態(tài)綁定,系統(tǒng)會(huì)在你編譯的時(shí)候根據(jù)你調(diào)用的方法參數(shù)列表來(lái)動(dòng)態(tài)的決定調(diào)用哪一個(gè)函數(shù)
可以看到子類(lèi)覆寫(xiě)了父類(lèi)的方法,也就是一個(gè)動(dòng)態(tài)綁定,系統(tǒng)會(huì)在運(yùn)行時(shí)動(dòng)態(tài)的決定調(diào)用子類(lèi)覆寫(xiě)后方法來(lái)實(shí)現(xiàn)1:繼承
2:重寫(xiě)(重寫(xiě)父類(lèi)繼承的方法)
3:父類(lèi)引用指向字類(lèi)對(duì)象www.多態(tài):實(shí)現(xiàn)多態(tài)三個(gè)條件:安博思軟www.JAVA中,一個(gè)類(lèi)之能有一個(gè)父類(lèi),不能多繼承。一個(gè)父類(lèi)可以有多個(gè)子類(lèi),而在子類(lèi)里可以重寫(xiě)父類(lèi)的方法,這樣每個(gè)子類(lèi)里重寫(xiě)的代碼不一樣,自然表現(xiàn)形式就不一樣。這樣用父類(lèi)的變量去引用不同的子類(lèi),在調(diào)用這個(gè)相同的方法的時(shí)候得到的結(jié)果和表現(xiàn)形式就不一樣了,這就是多態(tài),相同的消息(也就是調(diào)用相同的方法)會(huì)有不同的結(jié)果多態(tài)的實(shí)現(xiàn):通過(guò)繼承實(shí)現(xiàn)www.//子類(lèi)2
publicclassSon2extendsFather{//重寫(xiě)父類(lèi)打孩子方法
publicvoidhitChild(){System.out.println("我知道錯(cuò)了,別打了!");
}}//子類(lèi)3publicclassSon3extendsFather{//重寫(xiě)父類(lèi)打孩子方法publicvoidhitChild(){System.out.println("我跑,你打不著!");}}//子類(lèi)1publicclassSon1extendsFather{//重寫(xiě)父類(lèi)打孩子方法publicvoidhitChild(){System.out.println("我知道錯(cuò)了,別打了!");}}//父類(lèi)publicclassFather{//父類(lèi)有一個(gè)打孩子方法
publicvoidhitChild(){}System.out.println(“我是父親,可以打兒子!");}//測(cè)試類(lèi)
publicclassTest{
publicstaticvoidmain(Stringargs〔〕){ Fatherfather; father=newSon1(); father.hitChild(); father=newSon2(); father.hitChild(); father=newSon3(); father.hitChild();}}輸出結(jié)果:我知道錯(cuò)了,別打了!為什么打我?我做錯(cuò)什么了!我跑,你打不著!都調(diào)用了相同的方法,出現(xiàn)了不同的結(jié)果!這就是多態(tài)的表現(xiàn)!
www.繼承單繼承一個(gè)類(lèi)只能繼承一個(gè)父類(lèi)!接口多實(shí)現(xiàn)一個(gè)類(lèi)可以同時(shí)實(shí)現(xiàn)多個(gè)接口!一個(gè)接口類(lèi)型變量也可以指向其實(shí)現(xiàn)類(lèi)的實(shí)例,這也是多態(tài)的一種表現(xiàn)。多態(tài)的實(shí)現(xiàn):通過(guò)接口實(shí)現(xiàn)www.//類(lèi)2publicclassdaughter2implementsPetInterFace{//實(shí)現(xiàn)接口方法publicvoidpet(){
System.out.println(“父親寵愛(ài)我!");}}
//測(cè)試類(lèi)publicstaticvoidmain(String[]args){
PetInterFacedg1=newdaughter1();dg1.Pet();
PetInterFacedg2=newdaughter2();dg2.Pet();
}
}//類(lèi)1publicclassdaughter1implementsPetInterFace{//實(shí)現(xiàn)接口方法publicvoidpet(){System.out.println(“父親溺愛(ài)我!");}}//新接口publicinterfacePetInterFace{
//新功能方法publicvoidpet();}輸出結(jié)果:父親溺愛(ài)我!
父親寵愛(ài)我!1).應(yīng)用程序不必為每一個(gè)派生類(lèi)(子類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)游戲公司前臺(tái)接待總結(jié)
- 2025年全球及中國(guó)神經(jīng)外科分流器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球草坪護(hù)理CRM軟件行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)導(dǎo)向銷(xiāo)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)古董搬運(yùn)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球雙膜儲(chǔ)氣罐行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球環(huán)保EPDM顆粒行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球壞死性筋膜炎藥品行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球車(chē)輛后備箱釋放電纜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球光伏舟托行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 第十一章《功和機(jī)械能》達(dá)標(biāo)測(cè)試卷(含答案)2024-2025學(xué)年度人教版物理八年級(jí)下冊(cè)
- 2025年銷(xiāo)售部年度工作計(jì)劃
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績(jī)效的影響研究
- DB3713T 340-2024 實(shí)景三維數(shù)據(jù)接口及服務(wù)發(fā)布技術(shù)規(guī)范
- 八年級(jí)生物開(kāi)學(xué)摸底考(長(zhǎng)沙專(zhuān)用)(考試版)
- 車(chē)間空調(diào)崗位送風(fēng)方案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 初一年級(jí)班主任上學(xué)期工作總結(jié)
- 2023-2024年同等學(xué)力經(jīng)濟(jì)學(xué)綜合真題及參考答案
- 農(nóng)村集體土地使用權(quán)轉(zhuǎn)讓協(xié)議
評(píng)論
0/150
提交評(píng)論