




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗名稱第四章 接口和多態(tài)【實驗?zāi)康摹? .學(xué)習(xí)Java中抽象類的概念2 .學(xué)習(xí)接口的概念3 .學(xué)習(xí)面向抽象的編程以及面向接口的編程【實驗原理】1 .Java程序設(shè)計基本原理2 .面向?qū)ο蟪绦蛟O(shè)計基本原理【實驗內(nèi)容】一、結(jié)合本次課程,簡答:1、什么是上轉(zhuǎn)型對象?調(diào)用子類方法原則?將子類賦給父類時,稱父類為子類的上轉(zhuǎn)型對象。方法原則:只能調(diào)用子類繼承和重寫的方法,不能調(diào)用子類中新的方法。2、父類創(chuàng)建的對象和其子類的上轉(zhuǎn)型對象異同?相同點:都可以對父類里的方法進行調(diào)用。不同點:上轉(zhuǎn)型對象調(diào)用的父類方法只能是子類重寫之后的,而父類創(chuàng)建的 對象調(diào)用的是自身定義的。3、為什么引入抽象類和抽象方法?抽象類
2、只關(guān)心操作,不關(guān)心操作具體實現(xiàn)細節(jié),可以使程序員把精力集中在 程序的設(shè)計上,而不必拘泥于細節(jié)的實現(xiàn)。也就是說設(shè)計者只需設(shè)計好方法, 而 具體方法實現(xiàn)由子類的設(shè)計者實現(xiàn)。減輕了程序員的負擔(dān)。4、接口和抽象類的異同?相同點:二者都是需要背繼承和實現(xiàn)后才有實際意義,并且二者都有抽象類 型。不同點:抽象類屬于類,接口是一種新的數(shù)據(jù)類型;抽象類的屬性可以是常 量和變量,而接口中只能是常量;抽象類中可以有抽象方法和普通方法,而 接口中只能是抽象方法;抽象類將其抽象方法的實現(xiàn)交給其子類,而接口將 其抽象方法的實現(xiàn)交給實現(xiàn)該接口的類。5、接口和類的異同?相同點:接口和類都是數(shù)據(jù)類型;屬性中都有常量,方法中都有
3、抽象類方法。 不同點:類的屬性是變量和常量,方法需要實現(xiàn),而接口的屬性只能是常量, 方法只需聲明;類中可以有抽象方法和普通方法,而接口中只能是抽象方法; 類的屬性可以是常量和變量,而接口中只能是常量;類中可以有抽象方法和 普通方法,而接口中只能是抽象方法。、程序設(shè)計實驗一:按要求完成程序1 .設(shè)計一個抽象類People,具有抽象方法say();2 .設(shè)計子類 ChinaPeople AmericaPeople,實現(xiàn)抽象方法 say();兩個類的say()方法,分別輸出語句:我是中國人 ;我是美國人3 .設(shè)計一個Speak類,提供speaking(People p方法,注意:其參數(shù)是抽象的 Pe
4、ople類型,Speaking方法中,要求以上轉(zhuǎn)型對象參數(shù)p,調(diào)用say方法的內(nèi) 容;4 .設(shè)計一個測試類Test添加main函數(shù),分別創(chuàng)建中國人和美國人,測試 speak類的使用;5 .再增加一個子類AfricaPeople,實現(xiàn)抽象方法say();添加到測試類中。 代碼:abstract class People abstract void say();class ChinaPeople extends Peoplevoid say()System.out.println(我是中國人);class AmericaPeople extends Peoplevoid say()System.o
5、ut.println(我是美國人);class AfricaPeople extends Peoplevoid say()System.out.println(我是非洲人);class speakvoid speaking(People p) p.say();public class testpublic static void main(String args)speak ss=new speak();ChinaPeople wang=new ChinaPeople();AmericaPeople scott=new AmericaPeople();AfricaPeople nora=new
6、 AfricaPeople();ss.speaking(wang);ss.speaking(scott);ss.speaking(nora);j ij、j ., :.: .r?cs jiR rlr oufe Hfliwnjirt”rch 內(nèi),y? Ryi 寓n *nt jHpr :史z unH串 ijdfiiiii (urlrdh9ei”UeM JEE 5rt*i 4b鵬,-Sr-F-AfeMTrut clu-i即門,JbatTMc twIS MJ。J 0L“* ftj.nftPCle u.Eeiid feaplec “ wd | C3yatcna oue.E?xlnEl&4nf3ff 中 E
7、.-liir狼是非:謝人、t卜J sL ipk ! wiad xp-ai.kj.nqp| P-*kIJ J W” EMI ptfrl Lc nLi.-t Lc -roLd. -1r JtriEia =? ) 4 pfl上 HHWIT SJMilkCl ; Eh3XdiFB31 H*nn Z-LnHP4FlB |-7 taM-E LCfeP*-=f:lB KCCTWfFLC Pl-SFL ( rhfrhMPtWLe rwri-TM* AfTlWHQp1曹 IlJ as . spwkmgEHDgi” st.,亡die刁 dci i j av_i I制TaA皿l排1 口廣*國軍Y X B| , AJ
8、I P- Adnaiv i L*iulcri=idll C-AhrvMU 崎M口jiv*ki 1 ym* wsK *d gm也CMlra 54t AiriuK npnks mflin(SlriirgQl - d,丸 Hvtatomc 邑 Ala id dc , D*dwaiion Q Canuk I: QairrarvABd InL |Ath 4pp4ciric| ticgra國HiJiwWvAbi幡ianwatr l葡屏州25下卻M4t“l(fā)E中 J - CEP實驗二1. 接口 A 有一個 f(int a, int b)方法2. B類實現(xiàn)接口 A,重寫f()方法,返回最大公約數(shù);3. C類實現(xiàn)
9、接口 A ,重寫f()方法,返回最小公倍數(shù);最小公倍數(shù)=(a*b)/最大公約數(shù)4. D類提供show(A a)方法,以接口 A的變量為參數(shù),在方法內(nèi),打印出 a.f(4,6)方法的返回值;5. 設(shè)計test類,包含main函數(shù),用D類生成對象,對象調(diào)用show()方法 分別以B類對象作為參數(shù)和以C類對象作為參數(shù),求最大公約數(shù)和最小公倍數(shù)!public int f(int a,int b) / 求最大公約數(shù)int r =1 ;int aa = a;int bb = b;while (r!=0) r = aa % bb; aa = bb; bb = r; return aa;代碼:interfac
10、e A int f(int a,int b);class B implements Apublic int f(int a,int b)int r =1 ;int aa = a;int bb = b;while (r!=0) r = aa % bb; aa = bb; bb = r; return aa;class C implements A public int f(int a,int b)int r =1 ;int aa = a;int bb = b;while (r!=0) r = aa % bb; aa = bb; bb = r; return a*b/aa;class D publ
11、ic void show(A a)System.out.println(a.f(4,6); public class test public static void main(String args)D ss=new D();B pp=new B();C qq=new C();ss.show(pp);ss.show(qq);實驗三:設(shè)計一個給班級學(xué)生成績排序的程序,具體要求如下:(1)定義一個學(xué)生類student,包含姓名和分數(shù)兩個屬性:String name; intscore;(2)在主類中,定義一個學(xué)生類數(shù)組 stu,包含至少5個學(xué)生,對每個學(xué) 生的姓名和分數(shù)進行賦值;(3)對所有學(xué)生按
12、照分數(shù)進行排序,并放入 stu數(shù)組中;注意:如何排序, 方法不定,請同學(xué)們思考。(4)把所有學(xué)生信息,按照分數(shù)從高到底打印出來。 代碼:class student String name; int score ; student(String ss,int pp)this . name =ss;this . score =pp;public class testpublic static void main(String args) student stu= new student5;student s1 =new student(wang ,78);student s2=new studen
13、t(liu ,68);student s3=new student(zhang ,71)student s4=new student(li ,83);student s5=new student(wei ,90);stu0=s1;stu1=s2;stu2=s3;stu3=s4;stu4=s5;for ( int j=0;jj;k-)if (stuk. score stuk-1. score ) int temp=stuk. score ;stuk. score =stuk-1. score ;stuk-1. score =temp;String txt=;stuk. name
14、 =stuk-1. name; stuk-1. name =txt;for ( int i=0;i44刖lia flT&cac wil iwinilhHinfl ug0lJH +E+MnG| 1 5Gu-i*e 7B r tdnnc. Znn jzudiat lin, 4B): E/dan匚 f3nn axudcaT71| ;E-diinc ,W-nnt i:usiytFFX4riF,F(xiàn)F2 f初科嘉 0(0 91 rEM2J-v3-r e/:C: 4 r t4 X f-ar4,lnE 17; 土 ;:+卜 friiiKt-hf .mMWMm|k-l .iMcx-tH lAt Ttiesrtu
15、liij9t.9l:| i K&XCB?tXfeal - JCaZEf E.-t-l .fCC = KEAnaE.-n-lEor |Lnt K-S rl*H 3yaE.=4JE-FxlnE.l=.|scEi | ji,| . nKaflm-*u 1 . jcnn| rw i-iS-fel 0 G ueH甲 必山小 的rkife9*!國”.UeMJRE 熱碼eEilihr卡 .行邑川三三一c E3 a n-04-12 34 i L n H11 亡讓人二二二工工 - 15=|_|-1日二“力勸 shdddE bfi r uuuu-uuuuuu 占肛 tuuu-GEtutuEet-CihEiI.E
16、I vtu k auu=E”u 1k= 21 . aeon I:-C-p-T- _ ; j .3T:-C:tu fc .icamcu | k-11 . Kan; iu | fc-L | . =aECKrfl?U | 0. ntKMTHU 111 .DBiM-lant lx44;(ryzm . i3UE . DFbKln I Etu 11 .=JK + - * +1 I . KCXB i -刎 ba 才、.一廿T佳1、*回 *Rn= 14 P All V- Mnulr- k Lk-icilpcri=idannrt NijnEugrl to ycur Ink i tmk臣Owrine ;資 Wr 7 bq atudvrrl* 7咤馴r/ ! im* WiMU如ikiMj % g* * mairvihi口口1: nidjEftrtjffAmc
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)分包企業(yè)合同范本
- 華萊士加盟合同范例
- 勞務(wù)合同范本遷戶口
- 單位食堂承攬合同范本
- 個人農(nóng)業(yè)養(yǎng)殖合同范本
- 加盟合同范本李慶亮
- 出售公司房屋合同范本
- 人壽第三方代理合同范本
- 勞動用工合同范本范本
- 企業(yè)策劃標(biāo)準合同范本
- 高新技術(shù)企業(yè)認定申請書樣例與說明
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter6 Tree
- 高壓氧科工作總結(jié)高壓氧科個人年終總結(jié).doc
- 《政治學(xué)概論》教學(xué)大綱
- 橋梁缺陷與預(yù)防
- 食品生物化學(xué)習(xí)題謝達平(動態(tài))
- 新蘇教版小學(xué)科學(xué)三年級下冊全冊教案(2022年春修訂)
- 保安員工入職登記表
- 睿達RDCAM激光雕刻切割軟件V5.0操作說明書
- 機械設(shè)計基礎(chǔ)平面連桿機構(gòu)課件
- 人力資源部經(jīng)理崗位說明書
評論
0/150
提交評論