版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java
基礎(chǔ)知識多態(tài)www.安博思軟多態(tài)(Polymorphism)所謂多態(tài),是指把類中具有相似功能的不同方法使用同一個方法名來實現(xiàn),從而可以使用相同的方式來調(diào)用這些具有不同功能的同名方法。簡單來說就是多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征。www.安博思軟彩色打印機打印機黑白打印機打印效果:彩色打印效果:黑白打印打印Java中的引用變量有兩個類型,一個是編譯時的類型,一個是運行時的類型,編譯時的類型由聲明該變量時使用的類型決定,運行時的類型由實際賦給該變量的對象決定。如果編譯時的類型與運行時的類型不一致就會出現(xiàn)所謂的多態(tài)。(Polymorphism)www.為什么會出現(xiàn)多態(tài)?安博思軟www.編譯時多態(tài)性(靜態(tài)綁定)
對于多個同名方法,如果在編譯時能夠確定執(zhí)行同名方法中的哪一個,則稱為編譯時多態(tài)性。運行時多態(tài)性(動態(tài)綁定)如果在編譯時不能確定,只能在運行時才能確定執(zhí)行多個同名方法中的哪一個,則稱為運行時多態(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)綁定動態(tài)綁定
可以看到一個類中成員方法的重載,也就是一個靜態(tài)綁定,系統(tǒng)會在你編譯的時候根據(jù)你調(diào)用的方法參數(shù)列表來動態(tài)的決定調(diào)用哪一個函數(shù)
可以看到子類覆寫了父類的方法,也就是一個動態(tài)綁定,系統(tǒng)會在運行時動態(tài)的決定調(diào)用子類覆寫后方法來實現(xiàn)1:繼承
2:重寫(重寫父類繼承的方法)
3:父類引用指向字類對象www.多態(tài):實現(xiàn)多態(tài)三個條件:安博思軟www.JAVA中,一個類之能有一個父類,不能多繼承。一個父類可以有多個子類,而在子類里可以重寫父類的方法,這樣每個子類里重寫的代碼不一樣,自然表現(xiàn)形式就不一樣。這樣用父類的變量去引用不同的子類,在調(diào)用這個相同的方法的時候得到的結(jié)果和表現(xiàn)形式就不一樣了,這就是多態(tài),相同的消息(也就是調(diào)用相同的方法)會有不同的結(jié)果多態(tài)的實現(xiàn):通過繼承實現(xiàn)www.//子類2
publicclassSon2extendsFather{//重寫父類打孩子方法
publicvoidhitChild(){System.out.println("我知道錯了,別打了!");
}}//子類3publicclassSon3extendsFather{//重寫父類打孩子方法publicvoidhitChild(){System.out.println("我跑,你打不著!");}}//子類1publicclassSon1extendsFather{//重寫父類打孩子方法publicvoidhitChild(){System.out.println("我知道錯了,別打了!");}}//父類publicclassFather{//父類有一個打孩子方法
publicvoidhitChild(){}System.out.println(“我是父親,可以打兒子!");}//測試類
publicclassTest{
publicstaticvoidmain(Stringargs〔〕){ Fatherfather; father=newSon1(); father.hitChild(); father=newSon2(); father.hitChild(); father=newSon3(); father.hitChild();}}輸出結(jié)果:我知道錯了,別打了!為什么打我?我做錯什么了!我跑,你打不著!都調(diào)用了相同的方法,出現(xiàn)了不同的結(jié)果!這就是多態(tài)的表現(xiàn)!
www.繼承單繼承一個類只能繼承一個父類!接口多實現(xiàn)一個類可以同時實現(xiàn)多個接口!一個接口類型變量也可以指向其實現(xiàn)類的實例,這也是多態(tài)的一種表現(xiàn)。多態(tài)的實現(xiàn):通過接口實現(xiàn)www.//類2publicclassdaughter2implementsPetInterFace{//實現(xiàn)接口方法publicvoidpet(){
System.out.println(“父親寵愛我!");}}
//測試類publicstaticvoidmain(String[]args){
PetInterFacedg1=newdaughter1();dg1.Pet();
PetInterFacedg2=newdaughter2();dg2.Pet();
}
}//類1publicclassdaughter1implementsPetInterFace{//實現(xiàn)接口方法publicvoidpet(){System.out.println(“父親溺愛我!");}}//新接口publicinterfacePetInterFace{
//新功能方法publicvoidpet();}輸出結(jié)果:父親溺愛我!
父親寵愛我!1).應(yīng)用程序不必為每一個派生類(子類
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 1394-2026無線路測儀校準規(guī)范
- 海外房產(chǎn)銷售培訓(xùn)
- 連鑄工安全實操考核試卷含答案
- 酒店員工培訓(xùn)與企業(yè)文化融合制度
- 酒店餐飲服務(wù)質(zhì)量制度
- 天峨縣吉船舶制造項目環(huán)境影響報告表
- 陳化糧購銷合同模板
- 寶媽可以報考執(zhí)業(yè)藥師資格證嗎
- 洛陽婚慶策劃培訓(xùn)
- 2024-2025學(xué)年四川省廣元市高一下學(xué)期期末教學(xué)質(zhì)量監(jiān)測歷史試題(解析版)
- 生產(chǎn)現(xiàn)場資產(chǎn)管理制度
- 起重設(shè)備安全使用指導(dǎo)方案
- 江蘇省揚州市區(qū)2025-2026學(xué)年五年級上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 建筑與市政工程地下水控制技術(shù)規(guī)范
- “黨的二十屆四中全會精神”專題題庫及答案
- 2025年天翼云解決方案架構(gòu)師認證考試模擬題庫(200題)答案及解析
- 2025年甘肅省綜合評標專家?guī)炜荚囶}庫及答案
- 平滑肌瘤完整版本
- 唱歌技巧教學(xué)課件模板
- 豬場母豬能繁項目母豬生產(chǎn)線土建鋼構(gòu)舍水電工程施工方案與技術(shù)措施
- 企業(yè)社會責任手冊
評論
0/150
提交評論