Java面向?qū)ο?高級篇)繼承進(jìn)一步研究_第1頁
Java面向?qū)ο?高級篇)繼承進(jìn)一步研究_第2頁
Java面向?qū)ο?高級篇)繼承進(jìn)一步研究_第3頁
Java面向?qū)ο?高級篇)繼承進(jìn)一步研究_第4頁
Java面向?qū)ο?高級篇)繼承進(jìn)一步研究_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

認(rèn)識了繼承的基本觀點(diǎn)后,下邊對繼承操作中的一些注意點(diǎn)進(jìn)行研究。一.子類對象的實(shí)例化過程在繼承的操作中,關(guān)于子類對象實(shí)例化也是有要求的,及子類對象在實(shí)例化以前一定第一調(diào)用父類中的結(jié)構(gòu)方法后在調(diào)用自己的結(jié)構(gòu)方法?!咀宇惖膶?shí)例化過程】classPerson{privateStringname;privateintage;publicPerson( ){System.out.println("這是父類中的結(jié)構(gòu)方法");}publicStringgetName( ){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge( ){returnage;}publicvoidsetAge(intage){this.age=age;}}classStudentextendsPerson{privateStringschool;publicStudent( ){System.out.println("這是子類中的結(jié)構(gòu)方法");}publicvoidsetSchool(Stringschool){this.school=school;}publicStringgetSchool( ){returnschool;}}publicclassExtDemo2{publicstaticvoidmain(Stringargs[]){Studentstu=newStudent( );stu.setName("張三");stu.setAge(19);stu.setSchool("ZZU");System.out.println("姓名:"+stu.getName( )+",年紀(jì):"+stu.getAge( )+",學(xué)校:"+stu.getSchool( ));}}運(yùn)轉(zhuǎn)結(jié)果為:從運(yùn)轉(zhuǎn)結(jié)果能夠清楚的發(fā)現(xiàn),子類對象在實(shí)例化前會默認(rèn)調(diào)用父類中的結(jié)構(gòu)方法。就仿佛沒有父類就沒有孩子。自然關(guān)于以上代碼實(shí)質(zhì)上在子類的結(jié)構(gòu)方法中隱含了一個super( )的語法,代碼以下:classStudentextendsPerson{privateStringschool;publicStudent( ){super( );System.out.println("這是子類中的結(jié)構(gòu)方法");}publicvoidsetSchool(Stringschool){this.school=school;}publicStringgetSchool( ){returnschool;}}以上程序的運(yùn)轉(zhuǎn)結(jié)果與以前是相同的。super表示超級的意思,在一些書中也喜愛把父類叫做超類,上邊的語法就是表示子類能夠直接使用super( )調(diào)用父類(超類)中的無參結(jié)構(gòu)。二.方法的覆寫在繼承的關(guān)系中也存在著方法覆寫的觀點(diǎn),所謂的方法覆寫就是子類定義了與父類中名稱相同的方法,可是在覆寫時一定考慮到權(quán)限,即被子類覆寫的方法不可以擁有比父類方法更嚴(yán)格的接見權(quán)限?!痉椒ǖ母矊憽縞lassPerson{voidprint( ){System.out.println("Person-->voidprint( ){}");}}classStudentextendsPerson{publicvoidprint( ){System.out.println("Student-->voidprint( ){}");}}publicclassOverrideDemo01{publicstaticvoidmain(Stringargs[]){newStudent( ).print( );}}運(yùn)轉(zhuǎn)結(jié)果為:從程序的運(yùn)轉(zhuǎn)結(jié)果能夠發(fā)現(xiàn),Student子類定義了與Person父類中同名的方法,可是在子類中此方法的接見權(quán)限被擴(kuò)大了,切合覆寫的觀點(diǎn),當(dāng)方法被覆寫后,子類對象調(diào)用的就是被覆寫后的方法。需要注意的是,在被子類覆寫的方法權(quán)限減小時,會在編譯時產(chǎn)生錯誤。實(shí)質(zhì)上與方法的覆寫觀點(diǎn)相同的還有此外一種稱為屬性的覆蓋,這點(diǎn)在開發(fā)中使用較少?!緦傩缘母采w】classPerson{publicStringinfo="ZZU";}classStudentextendsPerson{publicStringinfo="zhao";publicvoidprint( ){System.out.println("父類中的屬性:"+);System.out.println("子類中的屬性:"+);}}publicclassOverrideDemo05{publicstaticvoidmain(Stringargs[]){newStudent( ).print( );}}運(yùn)轉(zhuǎn)結(jié)果為:以上程序只作為參照使用,讀者只要要認(rèn)識到,假如父類和子類聲了然相同名稱的屬性,則在子類中直接接見時必定是采納“就近原則”,即先找到本類中的屬性,假如此時要調(diào)用父類中的屬性,直接使用super.屬性格式進(jìn)行調(diào)用。能夠發(fā)現(xiàn)方法的重載和覆寫十分相像,下邊進(jìn)行對照:重載:(Overloading)定義:方法名稱相同,參數(shù)的個數(shù)和種類不一樣,對權(quán)限沒有要求。發(fā)生在一個類中。覆寫:(Overriding)定義:方法名稱相同,參數(shù)的種類、返回值種類完整相同,被覆寫的方法不可以擁有更嚴(yán)格的權(quán)限,發(fā)生在繼承類中。三.super重點(diǎn)字的作用在上邊的程序中向來有super重點(diǎn)字,使用super重點(diǎn)字能夠從子類中調(diào)用父類中的結(jié)構(gòu)方法、一般方法和屬性。以前演示了調(diào)用一般方法和屬性的的基本操作,下邊使用super調(diào)用父類中指定的結(jié)構(gòu)方法,與this調(diào)用結(jié)構(gòu)方法的要求相同,語句一定放在子類結(jié)構(gòu)方法的首行。【使用super調(diào)用父類中指定的結(jié)構(gòu)方法】classPerson{privateStringname;privateintage;publicPerson( ){this.setName(name);this.setAge(age);}publicvoidsetName(Stringname){=name;}publicvoidsetAge(intage){this.age=age;}publicStringgetName( ){;}publicintgetAge( ){returnthis.age;}publicStringgetInfo( ){return"姓名:"+this.getName( )+";年紀(jì):"+this.getAge( );}}classStudentextendsPerson{

//定義

Student

類privateStringschool;

//定義

school

屬性publicStudent(Stringname,intage,Stringschool){super(name,age);//明確調(diào)用父類中有兩個參數(shù)的結(jié)構(gòu)this.school=school;}publicvoidsetSchool(Stringschool){this.school=school;}publicStringgetSchool( ){returnthis.school;}publicStringgetInfo( ){returnsuper.getInfo( )+";學(xué)校:"+this.getSchool( );}};publicclassSuperDemo01{publicstaticvoidmain(Stringarsg[]){Studentstu=newStudent("張三",30,"清華大學(xué)");//實(shí)例化子類對象System.out.println(stu.getInfo( ));}};運(yùn)轉(zhuǎn)結(jié)果:姓名:張三;年紀(jì):30;學(xué)校:清華大學(xué)在以上程序中使用了super( )的形式調(diào)用了父類中的結(jié)構(gòu)方法,在子類中又覆寫了父類中的getInfo( )方法,因此輸出的內(nèi)容是子類中定義的內(nèi)容。能夠發(fā)現(xiàn)super和this字有相像之處,那么對照方下:

重點(diǎn)super:接見父類中的屬性,直接接見父類中的方法,調(diào)用父類結(jié)構(gòu),一定放在子類結(jié)構(gòu)方法的首行。this:接見本類中的屬性,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論