版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java對象的多態(tài)性匯編Java編程精要 Java對象的多態(tài)性福建 廈門20XX年6月本章相關(guān)詞匯本章相關(guān)詞匯單單 詞詞說說 明明Override method方法重寫方法重寫Convert轉(zhuǎn)換轉(zhuǎn)換abstract抽像的抽像的本章目標本章目標n對象的多態(tài)性n抽像方法多態(tài)性概述多態(tài)性概述n創(chuàng)建教員基類(Teacher),n在教員基類的基礎(chǔ)上,再創(chuàng)建兩個子類:JAVA教員(JavaTeacher)和.NET教員(DotNetTeacher),n開發(fā)一個類代表教學(xué)管理中心,負責(zé)對各教員進行評估,評估內(nèi)容包括:1、教員的自我介紹2、教員的授課public class TeacherManager pu
2、blic void judge(JavaTeacher t)roduce三三;t.teach三三;public void judge(DotNetTeacher t)roduce三三;t.teach三三;public static void main(String args) TeacherManager tmq = new TeacherManager 三三;tmq.judge(new JavaTeacher(李明李明, 25, 3);tmq.judge(new DotNetTeacher(張明張明, 27, 5);n現(xiàn)在,升級教員類,增加一種新類型:DBTeacher,
3、該類型的教員專門負責(zé)教授數(shù)據(jù)庫,要求如下:屬性:姓名、年齡、教學(xué)年限方法:授課(啟動Sql Server、實施理論課授課)、自我介紹n同時,教學(xué)管理中心也負責(zé)對這類教員進行評估n如果在前述方案的基礎(chǔ)上去解決,我們需要如下兩個步驟:建立DBTeacher類修改教學(xué)管理中心類,增加方法:judge(DBTeacher t)每增加一種新的教員類型,都要修改教學(xué)管理中每增加一種新的教員類型,都要修改教學(xué)管理中心類,增加相應(yīng)的心類,增加相應(yīng)的judge(評估評估)方法,代碼的可擴方法,代碼的可擴展性及可維護性差展性及可維護性差 這種方法有什么不好的地方?這種方法有什么不好的地方?多態(tài)概述n多態(tài)是指具有表
4、現(xiàn)多種形態(tài)的能力 n同一個實現(xiàn)接口,使用不同的實例而執(zhí)行不同操作彩色打印機彩色打印機 打印機打印機 黑白打印機黑白打印機打印效果:彩色打印效果:彩色打印效果:黑白打印效果:黑白打印打印 打印打印 1、子類重寫父類的方法2、編寫方法時,使用父類定義的方法3、運行時,JVM會根據(jù)實際創(chuàng)建的對象類型動態(tài)決定使用哪個方法public class TMQ public void judge(Teacher t)t.sayHi三三;t.lesson三三;public static void main(String args) TMQ tmq = new TMQ三三;tmq.judge(new JavaTe
5、acher(李明李明,25,3);tmq.judge(new DotNetTeacher(張明張明,27,5);tmq.judge(new DBTeacher(“李嵐李嵐,26,3);可以接收子類類型可以接收子類類型根據(jù)實際創(chuàng)建的對象類型根據(jù)實際創(chuàng)建的對象類型調(diào)用相應(yīng)方法調(diào)用相應(yīng)方法public class Teacher public void teach三三 System.out.println(知識點講解知識點講解); System.out.println(總結(jié)提問總結(jié)提問); public class TMQ public void judge(Teacher t) t.teach三三
6、; public class Test public static void main(String args) TMQ hq = new TMQ三三; hq.judge(new DBTeacher三三); public class DBTeacher extends Teacher public void teach三三 System.out.println(啟動啟動 SqlServer); super.teach三三; n請編碼實現(xiàn)如下需求:樂器(Instrument)分為:鋼琴(Piano)、小提琴(Violin)各種樂器的彈奏( play )方法各不相同。n編寫一個測試類Instrum
7、entTest,要求:編寫方法playTest,對各種樂器進行彈奏測試。要依據(jù)樂器的不同,進行相應(yīng)的彈奏。在main方法中進行測試編程練習(xí)抽象方法抽象方法n在某些情況下,基類無法(或者沒有必要)提供被覆蓋方法的具體實現(xiàn),那么就可以將此方法聲明成抽象方法;n使用關(guān)鍵字abstract聲明抽象方法,一般語法:n訪問權(quán)限 abstract 返回值類型 方法名稱(參數(shù)列表);n如:npublic abstract void draw三;抽象類抽象類n如果某個類中包含有抽象方法,那么該類就必須定義成抽象類;n定義抽象類同樣使用關(guān)鍵字abstract,一般語法:n訪問權(quán)限 abstract class 類
8、名 n成員列表nn如:npublic abstract class Shapes npublic abstract void draw三;n抽象類的注意事項抽象類的注意事項n抽象類不可以直接實例化,只可以用來繼承n抽象類的派生子類應(yīng)該提供對其所有抽象方法的具體實現(xiàn)(覆寫所有抽象方法)n可以這么認為,抽象方法實際上就是由抽象基類強制要求其派生子類必須實現(xiàn)的方法原型抽象類的注意事項抽象類的注意事項n如果抽象類的派生子類沒有實現(xiàn)其中的所有抽象方法,那么該派生子類仍然是抽象類,只能用于繼承,而不能實例化n抽象類中也可以包含有非抽象的方法n構(gòu)造方法和靜態(tài)方法不可以修飾為abstract給定如下Java代
9、碼,編譯運行后,輸出結(jié)果是什么?public class Teacher public void giveLesson三三System.out.println(知識點講解知識點講解);public class DBTeacher extends Teacher public void giveLesson三三System.out.println(啟動啟動 SqlServer);12public class Test public static void main(String args) Teacher t = new DBTeacher 三三;t.giveLesson三三; 控制臺輸出控制臺
10、輸出 啟動啟動 SqlServer 模板設(shè)計模式模板設(shè)計模式n模板設(shè)計模式是最為常見的設(shè)計模式之一n它是指搭建一個算法或方案的框架,而實現(xiàn)方式可以依據(jù)具體情況的不同而不同n所有遵循同一模板的類,都有相同或部分相同的結(jié)構(gòu)n模版方法模式是基于繼承的代碼復(fù)用的基本技術(shù),模版方法模式的結(jié)構(gòu)和用法也是面向?qū)ο笤O(shè)計的核心模板設(shè)計模式模板設(shè)計模式?jīng)_泡模板速溶咖啡沖泡方案綠茶沖泡方案模板設(shè)計模式模板設(shè)計模式n模板設(shè)計模式需要開發(fā)抽象類和具體子類的設(shè)計師之間的協(xié)作n一個設(shè)計師負責(zé)給出一個算法的輪廓和骨架,另一些設(shè)計師則負責(zé)給出這個算法的各個邏輯步驟實例實例實況足球?qū)崨r足球開發(fā)任務(wù)開發(fā)任務(wù)龍與地下城怪物設(shè)計龍與地下城怪物設(shè)計開發(fā)需求(1)英雄具有的屬性包括:姓名、職業(yè)、等級、血量、攻擊力和防御力,具有的方法包括:顯示屬性、判定是否死亡、攻擊(2)怪物共有的屬性包括:名稱、血量、攻擊力、防御力;共有的方法包括:顯示屬性、判定是否死亡、和攻擊(3)攻擊的傷害值計算公式為:攻擊者攻擊力-被攻擊者防御力,被攻擊者的血量會要扣減調(diào)傷害值開發(fā)任務(wù)開發(fā)任務(wù)龍與地下城怪物設(shè)計龍與地下城怪物設(shè)計(4)死亡判定規(guī)則為:血量小于等于0(5)設(shè)置兩種怪物:獨眼巨人,樹怪(6)獨眼巨人特有的屬性有:武器(狼牙棒或釘錘);獨眼巨人具有的攻擊方法是:使用武器(狼牙棒或釘錘)攻擊(7)樹怪特有的屬性:高度
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民務(wù)工合同范例
- 專業(yè)采購服裝合同范例
- 小區(qū)建房施工合同范例
- 建筑管樁合同范例
- 買斷果園合同范例
- 快速安裝工程施工合同范例
- 增值服務(wù)新增合同范例
- 展會制作合同范例
- 合資雙方轉(zhuǎn)讓合同模板
- 廣告門頭制作合同范例
- 鋼結(jié)構(gòu)可行性分析報告
- 高中地理 選必一《自然環(huán)境的整體性》第二課時-教學(xué)設(shè)計
- 我的故鄉(xiāng)-德江課件
- 《Treasure Island金銀島》課外閱讀教學(xué)中的主題意義探究
- 《紀念白求恩》朱德《紀念白求恩同志》教科書原文版
- 四大穿刺知識點考試試題及答案
- DB11-T 1796-2020文物建筑三維信息采集技術(shù)規(guī)程
- DB11-T 513-2018 綠色施工管理規(guī)程
- 腰椎間盤突出癥的護理查房課件(PPT 27頁)
- 通信線路工程驗收規(guī)范-原文件
- 腦梗死標準病歷、病程記錄、出院記錄模板
評論
0/150
提交評論