




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)十 類繼承與接口(二) 課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn) 實(shí)驗(yàn)項(xiàng)目名稱: 實(shí)驗(yàn)十 類繼承與接口 (二) 學(xué)生姓名: 專業(yè): 學(xué)號: 實(shí)驗(yàn)地點(diǎn): 實(shí)驗(yàn)日期: 年 月 【實(shí)驗(yàn)?zāi)康摹?掌握J(rèn)ava類的繼承特點(diǎn),包括子類聲明、對象創(chuàng)建、成員變量的繼承與隱藏、成員方法的繼承與重寫【實(shí)驗(yàn)內(nèi)容】10-1程序閱讀分析題。要求(1)有一個abstract類,類名為Employee。Employee的子類有YearWorker,MonthWorker和WeekWorker。YearWorker對象按年領(lǐng)取薪水,MonthWorker按月領(lǐng)取薪水,WeekWorker按周領(lǐng)取薪水。Employee類有一個abs
2、tract方法,子類必須重寫父類的earings()方法,給出各自領(lǐng)取報(bào)酬的具體方式。(2)有一個Company類,該類用employee數(shù)組作為成員,employee數(shù)組的單元可以是YearWorker對象的上轉(zhuǎn)型對象,MonthWorker對象 的上轉(zhuǎn)型對象或者WeekWorker對象的上轉(zhuǎn)型對象。源程序:(請將源程序中補(bǔ)充的空缺代碼處以下劃線加粗顯示):abstract class Employeepublic abstract double earnings();class YearWorker extends Employee/重寫earnings()方法代碼1:class Mont
3、hWorker extends Employee/重寫earnings()方法代碼2:class WeekWorker extends Employee /重寫earnings()方法代碼3:class CompanyEmployee employee;double salaries=0;Company(Employee employee)this.employee=employee;public double salariesPay()salaries=0;/計(jì)算salaries代碼4:return salaries;public class HardWorkpublic static vo
4、id main(String args)Employee employee=new Employee20;for(int i=0;iemployee.length;i+)if(i%3=0)employeei=new WeekWorker();else if(i%3=1)employeei=new MonthWorker();else if(i%3=2)employeei=new YearWorker();Company company=new Company(employee);System.out.println(公司年工資總額:+company.salariesPay();代碼:abstr
5、act class Employeepublic abstract double earnings();class YearWorker extends Employee/重寫earnings()方法 public double earnings() return 80000.0; class MonthWorker extends Employee public double earnings() return 60000.0; class WeekWorker extends Employee public double earnings() return 40000.0; class C
6、ompanyEmployee employee;double salaries=0;Company(Employee employee)this.employee=employee;public double salariesPay()salaries=0;for(int i = 0;i employee.length; i+)salaries = salaries + employeei.earnings(); return salaries;public class HardWorkpublic static void main(String args)Employee employee=
7、new Employee20;for(int i=0;iemployee.length;i+)if(i%3=0)employeei=new WeekWorker();else if(i%3=1)employeei=new MonthWorker();else if(i%3=2)employeei=new YearWorker();Company company=new Company(employee);System.out.println(公司年工資總額:+company.salariesPay();10-2.檢查下面代碼是否有錯,如果有錯,寫明錯誤原因,并修正錯誤。1. class Aaa
8、 int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double d)Aaa(int)d);是否出錯:是。出錯原因(如果出錯):構(gòu)造器里不能調(diào)用構(gòu)造器。改為Aaa(double d)i = (int) d;2. class Aaa int i; Aaa()i=-1; Aaa(int a) i = a; Aaa(double a)int b=(int)a;this(b); 是否出錯:錯出錯原因(如果出錯):this(參數(shù))只能為第一句。改為Aaa(double a) this(int)a);3. class Aaa int i;Aaa(int a) i = a;cl
9、ass Bbb extends Aaa Bbb() 是否出錯: 錯, 出錯原因(如果出錯):Bbb() 中沒有調(diào)用Aaa中的構(gòu)造器,改為Bbb()super(10);4. class Aaa private int i; protected int j;class Bbb extends Aaa Bbb() i = 10; j = 99; 是否出錯:錯出錯原因(如果出錯):Bbb的直接超類Aaa中的實(shí)例變量i權(quán)限為private,在Bbb中不可繼承,將int i;的權(quán)限改為至少為protected。5. 編譯下面程序,程序是否出錯class A int i =100;class B exten
10、ds A int i =10000;public static void main(String args)System.out.println(this.i);System.out.println(super.i);a) 是否出錯:是b) 出錯原因(如果出錯):(2)如果將上述類B的int i =10000改為static int i =10000;類A的int i =100改為static int i =100;程序是否出錯?出錯原因(如果出錯):出錯。不能在靜態(tài)上下文中引用this和super。(3)如果將類B的main方法改為public static void main(String
11、 args) B b =new B();System.out.println(b.i); System.out.println(A)b.i); 程序是否出錯? 出錯原因(如果出錯):出錯。(A)b.i錯誤,應(yīng)該為A.i,并將類A的int i =100改為static int i =100;如果沒出錯, 給出結(jié)果:上面的System.out.println(b.i)的含義: System.out.println(A)b.i) 的含義: 6. class Aaa int i; public void Aaa(int a) i=a; public static void main(String ar
12、gs) Aaa a = new Aaa(10); 是否出錯:是出錯原因(如果出錯):public void Aaa(int a) i=a;應(yīng)為構(gòu)造器,不是方法,改為public Aaa(int a) i=a;7.class Aaa public static void main(String args)int a=new int5; for( int i=0;ia.length;i+) for(int j=0;iai.length;j+) aij= (int)(100*Math.random(); System.out.println(aij); 是否出錯:是出錯原因(如果出錯):int a=
13、new int5;中沒有列數(shù)量,改為int a=new int55;而且for(int j=0;iai.length;j+)中iai.length;應(yīng)為j ai.length8.class A int abc(int i)return 1; /方法1 int abc(int j)return 2; /方法2 int abc(int i,int j)return 3; /方法3 void abc(int i) /方法4是否有錯: 是。上面類A中定義的四個方法是否都是方法的重載,有沒有重復(fù)定義的方法,如果有,那么哪幾個方法是重復(fù)定義的?不是,有重復(fù)定義的方法,方法1,2,4為方法重復(fù)定義。9. class A void show() System.out.println(A類的show(); class B extends A int show() System.out.println(B類的show(); public static void main(String args) B b = ne
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 剪輯師工作職責(zé)
- 安全生產(chǎn)的資料
- 安全生產(chǎn)許可證網(wǎng)上辦理
- 安全教育培訓(xùn)內(nèi)容
- 化工安全生產(chǎn)月心得體會
- 6月安全教育培訓(xùn)
- 論安全生產(chǎn) 心得體會
- 采購助理周報(bào)工作總結(jié)
- 安全生產(chǎn)方面工作內(nèi)容
- 小班心理安全教育
- 解熱鎮(zhèn)痛抗炎藥非甾體抗炎藥專家講座
- DB44-T 2410-2023紅樹林生態(tài)修復(fù)工程評價技術(shù)規(guī)程
- YY/T 1830-2022電動氣壓止血儀
- 臨床、口腔醫(yī)師申報(bào)衛(wèi)生高級職稱工作量登記表
- GB/T 10045-2018非合金鋼及細(xì)晶粒鋼藥芯焊絲
- GB 7099-2015食品安全國家標(biāo)準(zhǔn)糕點(diǎn)、面包
- 2023年納雍縣財(cái)政局系統(tǒng)事業(yè)單位招聘筆試題庫及答案解析
- 2023年廣東省普通高中學(xué)業(yè)水平考試及參考答案
- 建筑工程模板施工工藝技術(shù)要點(diǎn)講義豐富課件
- 浙江省建設(shè)領(lǐng)域簡易勞動合同(A4版本)
- 位置度公差以及其計(jì)算
評論
0/150
提交評論