資源描述:
《實(shí)驗(yàn)報(bào)告繼承、多態(tài)與接口》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、實(shí)驗(yàn)三繼承、多態(tài)與接口一、實(shí)驗(yàn)?zāi)康?.掌握J(rèn)ava的繼承機(jī)制;2.掌握對(duì)象引用的多態(tài)方法;3.掌握接口的特點(diǎn)、結(jié)構(gòu)和調(diào)用;4.掌握接口和繼承的混合使用。二、實(shí)驗(yàn)要求1.編寫(xiě)體現(xiàn)類(lèi)的繼承性(成員變量、成員方法、成員變量隱藏)的程序。2.編寫(xiě)體現(xiàn)類(lèi)的多態(tài)性(成員方法重載、構(gòu)造方法重載)的程序。3.編程使用系統(tǒng)接口的技術(shù)和創(chuàng)建自定義接口的方法。三、實(shí)驗(yàn)內(nèi)容?(一)類(lèi)的繼承性練習(xí)1.理解繼承的含義新類(lèi)可從現(xiàn)有的類(lèi)中產(chǎn)生,并保留現(xiàn)有類(lèi)的成員變量和方法并可根據(jù)需要對(duì)它們加以修改。新類(lèi)還可添加新的變量和方法。這種現(xiàn)象就稱(chēng)
2、為類(lèi)的繼承。當(dāng)建立一個(gè)新類(lèi)時(shí),不必寫(xiě)出全部成員變量和成員方法。只要簡(jiǎn)單地聲明這個(gè)類(lèi)是從一個(gè)已定義的類(lèi)繼承下來(lái)的,就可以引用被繼承類(lèi)的全部成員。被繼承的類(lèi)稱(chēng)為父類(lèi)或超類(lèi)(superclass),這個(gè)新類(lèi)稱(chēng)為子類(lèi)。Java提供了一個(gè)龐大的類(lèi)庫(kù)讓開(kāi)發(fā)人員繼承和使用。設(shè)計(jì)這些類(lèi)是出于公用的目的,因此,很少有某個(gè)類(lèi)恰恰滿足你的需要。你必須設(shè)計(jì)自己的能處理實(shí)際問(wèn)題的類(lèi),如果你設(shè)計(jì)的這個(gè)類(lèi)僅僅實(shí)現(xiàn)了繼承,則和父類(lèi)毫無(wú)兩樣。所以,通常要對(duì)子類(lèi)進(jìn)行擴(kuò)展,即添加新的屬性和方法。這使得子類(lèi)要比父類(lèi)大,但更具特殊性,代表著一組更具
3、體的對(duì)象。繼承的意義就在于此。2.創(chuàng)建公共類(lèi)SY3_1_Pl???????編寫(xiě)程序文件SY3_1_P.java,源代碼如下:publicclassSY3_1_P{protectedStringxm;//具有保護(hù)修飾符的成員變量protectedintxh;voidsetdata(Stringm,inth){//設(shè)置數(shù)據(jù)的方法xm=m;xh=h;}publicvoidprint(){//輸出數(shù)據(jù)的方法System.out.println(xm+","+xh);}}l???????編譯SY3_1_P.java,
4、產(chǎn)生類(lèi)文件SY3_1_P.class。3.創(chuàng)建繼承的類(lèi)l???????程序功能:通過(guò)SY3_1_P類(lèi)產(chǎn)生子類(lèi)SY3_2,其不僅具有父類(lèi)的成員變量xm(姓名)、xh(學(xué)號(hào)),還定義了新成員變量xy(學(xué)院)、xi(系)。在程序中調(diào)用了父類(lèi)的print方法,同時(shí)可以看出子類(lèi)也具有該方法。l???????編寫(xiě)SY3_2.java程序,源代碼如下:classSY3_2extendsSY3_1_P{protectedStringxy;protectedStringxi;publicstaticvoidmain(Stri
5、ngargs[]){SY3_1_Pp1=newSY3_1_P();p1.setdata("帥零",12321);p1.print();SY3_2s1=newSY3_2();s1.setdata("郭麗娜",12345);//調(diào)用父類(lèi)的成員方法s1.xy="經(jīng)濟(jì)管理學(xué)院";//訪問(wèn)本類(lèi)的成員變量s1.xi="信息管理系";//訪問(wèn)本類(lèi)的成員變量s1.print();System.out.print(s1.xm+","+s1.xy+","+s1.xi);}}l???????編譯并運(yùn)行程序注意:公共類(lèi)SY3_1_
6、P與SY3_2類(lèi)要在同一文件夾(路徑)內(nèi)。(二)類(lèi)的多態(tài)性練習(xí)1.?理解類(lèi)的多態(tài)性類(lèi)的繼承發(fā)生在多個(gè)類(lèi)之間,而類(lèi)的多態(tài)只發(fā)生在同一個(gè)類(lèi)上。在一個(gè)類(lèi)中,可以定義多個(gè)同名的方法,只要確定它們的參數(shù)個(gè)數(shù)和類(lèi)型不同。這種現(xiàn)象稱(chēng)為類(lèi)的多態(tài)。多態(tài)使程序簡(jiǎn)潔,為程序員帶來(lái)很大便利。在OOP中,當(dāng)程序要實(shí)現(xiàn)多個(gè)相近的功能時(shí),就給相應(yīng)的方法起一個(gè)共同的名字,用不同的參數(shù)代表不同的功能。這樣,在使用方法時(shí)不論傳遞什么參數(shù),只要能被程序識(shí)別就可以得到確定的結(jié)果。類(lèi)的多態(tài)性體現(xiàn)在方法的重載(overload)上,包括成員方法和構(gòu)造
7、方法的重載。2.?方法的重載方法的重載是指對(duì)同名方法的不同使用方式。l???????程序功能:對(duì)不同的數(shù)進(jìn)行排序輸出。在IntSort類(lèi)中定義3個(gè)同名的方法sort,l???????編寫(xiě)SY3_3.java文件,源代碼如下:importjava.awt.Graphics;importjava.applet.Applet;classIntSort{publicStringsort(inta,intb){if(a>b)returna+""+b;elsereturnb+""+a;}publicStringsort
8、(inta,intb,intc){intswap;if(a