資源描述:
《[feiq]面向?qū)ο缶幊谭庋b_繼承_多態(tài).ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Java編程面向?qū)ο缶幊堂嫦驅(qū)ο筇卣鞣庋b繼承多態(tài)Java中的包packageJava提供包來管理類Java中包的結(jié)構(gòu)在文件系統(tǒng)中就是目錄結(jié)構(gòu)。包的作用(1)包能夠很好的處理同名類問題(2)有助于按模塊和功能劃分和組織JAVA應(yīng)用中的各個類(3)包實現(xiàn)了訪問權(quán)限控制Import的意義但一個類中要使用已經(jīng)存在的一個類時。編譯器會自動將這個外部類代碼寫入類中。但是我們必須要告訴編譯器我們需要導(dǎo)入那個類。通過全路徑直接寫入如java.util.Datepublicstaticvoidmain(Stringargs[]){jav
2、a.util.Datedate=newjava.util.Date();}封裝封裝的定義封裝就是指用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起。在程序運行過程中,其它部分只能通過包裹在數(shù)據(jù)外面的被授權(quán)的操作,才能夠與這個抽象數(shù)據(jù)類型交流和交互。Import意義二通過import方式導(dǎo)入類importjava.util.Date;publicstaticvoidmain(Stringargs[]){Datedate=newDate();}這些寫在代碼中簡化了書寫。也可以通過*號方式導(dǎo)入整個包。importjava.ut
3、il.*;封裝封裝是通過訪問權(quán)限修飾符來實現(xiàn)的public從任何地方的任何類訪問protected從相同包中的任何類,以及從任何地方的任何子類訪問包訪問權(quán)限從相同包中的任何類訪問private根本不允許從該類以外訪問封裝訪問修飾符是作用在類的屬性或方法上來實現(xiàn)的包訪問權(quán)限(屬性和方法上沒加任何的訪問修飾符)當前包中的所有其他類都可以訪問該成員public權(quán)限:任何地方任何類都可以訪問private權(quán)限:除了包含該成員的類之外,其它任何類都無法訪問改成員。protected權(quán)限:受保護的訪問。1在同一包下訪問2繼承訪問權(quán)
4、限類的復(fù)用組合依賴繼承類的組合使用只需在新的類中產(chǎn)生現(xiàn)有類的對象即可。由于新的類是現(xiàn)有類的對象所組成的繼承繼承語法在一個現(xiàn)有類的基礎(chǔ)上定義一個新類稱為派生。新生成的類稱為子類,原來的類稱為父類。父子類之間的關(guān)系稱為類的繼承,用操作符extends來表明關(guān)系。繼承的用處使用繼承可以避免代碼的重復(fù)編寫,不僅如此,繼承也能很明確地表達出類間的關(guān)系。但其弊端也顯而易見:如果父類設(shè)計不合理,那么其子類也會受到影響。我們把處于繼承關(guān)系中的上一級類稱之為:父類(parent類)或(super類),而把下級類稱之為(子類child類)
5、或(sub類)。子類對象的創(chuàng)建創(chuàng)建一個類的對象時,系統(tǒng)會調(diào)用其構(gòu)造函數(shù)對所屬成員變量進行初始化。那么對于那些繼承自父類的成員又當如何初始化呢?1創(chuàng)建子類對象時,會先執(zhí)行父類構(gòu)造函數(shù),隨后,執(zhí)行子類的構(gòu)造函數(shù),完成對象的創(chuàng)建。2創(chuàng)建子類對象時,系統(tǒng)會先調(diào)用父類構(gòu)造函數(shù)初始化父類的成員,隨后,調(diào)用子類構(gòu)造函數(shù)初始化子類成員。3系統(tǒng)之所以會自動調(diào)用父類的構(gòu)造函數(shù),是因為子類構(gòu)造函數(shù)的最上端隱含著“super();”例子說明繼承指的是什么publicclassPeople{protectedintage;protectedin
6、theight;publicPeople(){System.out.println(“Mandefault構(gòu)造函數(shù)”);}publicvoideat(){System.out.println("吃飯");System.out.println(“age=”+age);}publicvoidsleep(){System.out.println("睡覺");}}說明繼承指的是什么publicclassHunter{protectedintage;protectedintheight;privateintgun;publicH
7、unter(){System.out.println(“Hunterdefault構(gòu)造函數(shù)”);}publicHunter(intage,intheight){this.age=age;this.height=height;}publicvoideat(){System.out.println("吃飯");}publicvoidsleep(){System.out.println("睡覺");}publicvoidshoot(){System.out.println(“射擊”)}}繼承實例publicclassPeop
8、le{protectedintage;protectedintheight;publicvoideat(){System.out.println("吃飯");}publicvoidsleep(){System.out.println("睡覺");}}publicclassHunterextendsPeople{privateint