實(shí)驗(yàn)5 繼承與接口(二)_第1頁
實(shí)驗(yàn)5 繼承與接口(二)_第2頁
實(shí)驗(yàn)5 繼承與接口(二)_第3頁
實(shí)驗(yàn)5 繼承與接口(二)_第4頁
實(shí)驗(yàn)5 繼承與接口(二)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 實(shí)驗(yàn)5、繼承與接口(二)1、 實(shí)驗(yàn)?zāi)康?. 子類的繼承性2. 深入理解類的繼承的基本概念及實(shí)現(xiàn)。3. 了解Object及對Object類的主要方法equals進(jìn)行重寫。4. 掌握super關(guān)鍵字的作用。5. 掌握抽象類與接口的基本概念及實(shí)際應(yīng)用6. 掌握對象多態(tài)性的作用。7. 掌握接口的基本概念及實(shí)際應(yīng)用。8. 掌握接口回調(diào)的概念及運(yùn)行機(jī)制。2、 實(shí)驗(yàn)內(nèi)容及步驟1、重寫Object類的equals方法 任務(wù)一:使用繼承自O(shè)bject類的equals方法進(jìn)行Person對象的比較操作。 (1)源代碼如下: class Person private String name; private in

2、t age; public Person(String name,int age) = name; this.age = age;/getter與setter方法略。 public String toString() return “姓名:”++”;年齡:”+this.age;public class PersonDemo public static void main(String args) Person person1 = new Person(“李興華”,30); Person person2 = new Person(“李興華”,30);Syst

3、em.out.println(person1.equals(person2)?”是同一個(gè)人?!?”不是同一個(gè)人?!?;(2)編譯并運(yùn)行應(yīng)用程序。(3)實(shí)驗(yàn)報(bào)告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報(bào)告中。思考:應(yīng)用程序中person1對象調(diào)用的equals方法是從哪個(gè)類繼承的,請查看源代碼,說明此equals方法的作用,即比較的內(nèi)容。任務(wù)二:修改上述源代碼Person類,使PersonDemo應(yīng)用程序執(zhí)行結(jié)果為“同一個(gè)人”。2、對象的上轉(zhuǎn)型對象任務(wù)一:對象的上轉(zhuǎn)型對象接收任意子類類型的對象 (1)使用Object接收一切的引用類型對象。 源代碼: class A public String getInfo() r

4、eturn “Hello World!”; public class ADemo public static void main(String args) Object obj = new A(); System.out.println(obj.getInfo(); System.out.println(obj.toString(); A a = (A)obj; System.out.println(a.getInfo(); System.out.println(a.toString();(2)編譯并運(yùn)行程序。(3)實(shí)驗(yàn)報(bào)告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報(bào)告中。如果程序編譯為通過,或運(yùn)行時(shí)有錯(cuò)誤提示,請說

5、明原因,并將錯(cuò)誤改正。任務(wù)二:上轉(zhuǎn)型實(shí)現(xiàn)多態(tài)性(1) 實(shí)例學(xué)習(xí)² 不使用上轉(zhuǎn)型對象實(shí)現(xiàn)多態(tài)性源代碼如下:² 使用上轉(zhuǎn)型對象實(shí)現(xiàn)多態(tài)性:(2)閱讀上述兩個(gè)源代碼,深刻理解使用上轉(zhuǎn)型對象實(shí)現(xiàn)多態(tài)性機(jī)制。編譯并運(yùn)行第二個(gè)程序。(3)實(shí)驗(yàn)報(bào)告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報(bào)告中。3、抽象類與上轉(zhuǎn)型對象練習(xí)任務(wù)一:通過對上述實(shí)驗(yàn)內(nèi)容的實(shí)踐與學(xué)習(xí),根據(jù)要求填寫代碼。(1)要求:² 有一個(gè)abstract類,類名為Employee;² 該類有一個(gè)abstract方法:public abstract double earnings( );;² Employee的子類有Ye

6、arWorker、MontthWorker和WeekWorker。YearWorker對象按年領(lǐng)取薪水,MonthWorker按月領(lǐng)取薪水,WeekWorker按周領(lǐng)取薪水。² 子類必須實(shí)現(xiàn)父類的earnings()方法,返回各自領(lǐng)取薪水?dāng)?shù)。² 有一個(gè)Company類,該類用employee數(shù)組作為成員,employee數(shù)組的單元可以是YearWorker對象的上轉(zhuǎn)型對象、MonthWorker對象的上轉(zhuǎn)型對象或WeekWorker對象的上轉(zhuǎn)型對象。² 程序能輸出Company對象一年需要支付的薪水總額。(2)代碼模板按模板要求,將代碼1-4替換為java程序代碼

7、。abstract class Employee public abstract double earnings( );class YearWorker extends Employee 【代碼1】 / 實(shí)現(xiàn)earnings( )方法class MonthWorker extends Employee 【代碼2】 / 實(shí)現(xiàn)earnings( )方法class WeekWorker extends Employee 【代碼3】 / 實(shí)現(xiàn)earnings( )方法class Company Employee employee; double salaries=0; Company(Employee

8、 employee) this.employee=employee; public double salariesPay( ) salaries=0; 【代碼4】 / 計(jì)算salaries return salaries; public class HardWork public static void main(String args ) Employee employee=new Employee20; for(int i=0;i<employee.length;i+) if(i%3=0) employeei=new WeekWorker( ); else if(i%3=1) emp

9、loyeei=new MonthWorker( ); else if(i%3=2) employeei=new YearWorker( ); Company company=new Company(employee); System.out.println("公司年工資總額:"+ 【代碼5】 ); (3)實(shí)驗(yàn)報(bào)告將代碼1-4寫在實(shí)驗(yàn)報(bào)告中。在Employee類的子類中合適位置使用super,再運(yùn)行程序。根據(jù)查看的結(jié)果,驗(yàn)證在子類中是否可以調(diào)用抽象類父類的構(gòu)造方法,即抽象類是否有構(gòu)造方法?4、接口案例學(xué)習(xí)任務(wù)一:學(xué)習(xí)下面實(shí)例,定義一個(gè)抽象的汽車類car,再將汽油車設(shè)計(jì)為接口。

10、該程序代碼如下:import java.awt.Color; /汽車抽象類public abstract class Car /公用數(shù)據(jù)字段聲明區(qū) public Color color; /車輛顏色 public int gearNum; /排檔數(shù) public String tiretype; /輪胎型號 public float engine; /引擎排氣量 /公用抽象方法聲明區(qū) public abstract void shiftgear(); /換檔 public abstract void brake(); /煞車 public abstract void aircon(); /開冷

11、氣 public abstract void headlight(); /開大燈 public interface Gasoline /汽油車接口public static final String FUEL="gasoline(汽油)"/定義一個(gè)最終字段 public void refuel(); /聲明一個(gè)方法任務(wù)二:(1)根據(jù)以上代碼,定義你自己的車,該車?yán)^承自汽車類car并實(shí)現(xiàn)汽油車接口。自己的車屬性為:檔位為5個(gè)檔,輪胎型號是BridgeStone185ST,排氣量為1598.5。自己的車的新增的方法有:equipment():輸出轎車顏色、轎車排檔數(shù)、轎車輪胎型

12、號、轎車排氣量和轎車燃料。(2)實(shí)驗(yàn)報(bào)告將任務(wù)二的代碼寫在實(shí)驗(yàn)報(bào)告中。編寫應(yīng)用程序測試實(shí)現(xiàn)類。(3)注意:在實(shí)現(xiàn)接口時(shí),要實(shí)現(xiàn)所有接口中定義的所有方法,方法的實(shí)現(xiàn)可以具有具體的實(shí)現(xiàn)內(nèi)容,也可以是抽象的方法,即只有方法名或參數(shù),沒有變量、沒有具體操作語句,只有一對大括號的空方法。5、接口的回調(diào)任務(wù):按要求填寫代碼。(1) 要求:² 有一個(gè)ComputeTotalSales接口,該接口中有一個(gè)方法:public double totalSalesBy Year();² 有三個(gè)實(shí)現(xiàn)該接口的類:Television,Computer和Mobile。這三個(gè)類通過實(shí)現(xiàn)接口compute

13、TotalSales給出自己的年銷售額。² 有一個(gè)Shop類,該類用computeTotalSales數(shù)組作為成員,computeTotalSales數(shù)組的單元可以存放Television對象的引用或Mobile對象的引用。² 編寫應(yīng)用程序輸出Shop對象的年銷售額。(2)代碼模板按模板要求,將代碼1-4替換為java程序代碼interface ComputeTotalSales public double totalSalesByYear( );class Television implements ComputeTotalSales 【代碼1】 / 實(shí)現(xiàn)totalSal

14、esByYear( )方法class Compute implements ComputeTotalSales 【代碼2】 / 實(shí)現(xiàn)totalSalesByYear( )方法class Mobile implements ComputeTotalSales 【代碼3】 / 實(shí)現(xiàn)totalSalesByYear( )方法class Shop ComputeTotalSales goods; double totalSales=0; Shop(ComputeTotalSales goods) this.goods=goods; public double giveTotalSales( ) totalSales=0; 【代碼4】 / 計(jì)算totalSales return totalSales; public class HappySale public static void main(String args ) ComputeTotalSales goods=new ComputeTotalSales50; for(int i

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論