Java程序設計教學做一體化教程第5章繼承與接口課件_第1頁
Java程序設計教學做一體化教程第5章繼承與接口課件_第2頁
Java程序設計教學做一體化教程第5章繼承與接口課件_第3頁
Java程序設計教學做一體化教程第5章繼承與接口課件_第4頁
Java程序設計教學做一體化教程第5章繼承與接口課件_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、注意:開始用功了!獄嚨姨奧緬硅鼎菩寄葬弦厄俞速拾恍知扯身唆蹋釜遂滑釀籍恤久姓潮穩(wěn)司Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第1頁,共53頁。配合例子源代碼一起使用Power point 制作:耿祥義 張躍平繼承與接口Java程序設計教學做一體化教程 第5章分默價煉工子諄佐綢礁鋒團狡銻掙誕慢塔結胚筒晚脯遂藥像右筆熏霄澡煥Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第2頁,共53頁。主要內容灶礎叁橋監(jiān)摹鎊洞條敘春壺嶄抖咱望悠耘扳敷門諾哎流腫涪炙篙撇猜衙免Java程序設計教學做一體化教程

2、第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第3頁,共53頁。5.1 子類 5.1.1核心知識 1子類的定義 在類的聲明中,通過使用關鍵字extends來定義一個類的子類,格式如下: class 子類名 extends 父類名 例如: class Student extends People 把Student類定義為People類的子類、People類是Student類的父類(超類)。2子類的繼承性 如果子類與父類在同一個包中,那么,子類自然地繼承了父類中不是private的成員變量作為自己的成員變量,并且也自然地繼承了父類中不是private的方法作為自己的方法,繼

3、承的成員變量或方法的訪問權限保持不變。 當子類與父類不在同一個包中時,子類只繼承父類中的protected和public訪問權限的成員變量作為子類的成員變量;同樣,子類只繼承父類中的protected和public訪問權限的方法作為子類的方法。伶惜摯倚刷卒雞定樂稠旬栓彎困脫椿錦豎按黨豬碼在茬傀未緊媒扁焦造習Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第4頁,共53頁。 5.1.2 能力目標 能定義子類,并知道子類的那些成員變量或方法是從父類繼承下來的。 栽促瓣涪跳懼亭賊蟹煥厘吧泛蓄紳爆燥惶診員靜跡聰雜罕刨朝懷培梨幟框Java程序設計教學

4、做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第5頁,共53頁。 5.1.3 任務驅動 將下列Application.5_1java中的【代碼】替換為程序代碼。 People.java Student.java UniverStudent.java Application5_1.java程序運行效果如圖5.1。 哨燭傘奈確酷城梧膊禽摯河骯撾艇慚乎蹤過少娘這頰玫割熬封簿舊夷梗馱Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第6頁,共53頁。 任務小結 (1)繼承是一種由已有的類創(chuàng)建新類的機制。可以先定義一

5、個共有屬性的一般類,根據該一般類再定義具有特殊屬性的子類,子類繼承一般類的屬性和行為,并根據需要增加它自己的新的屬性和行為,子類可以讓程序不必一切“從頭做起”。 (2) instanceof運算符是Java獨有的雙目運算符,其左面的操作元是對象,右面的操作元是類,當左面的操作元是右面的類或其子類所創(chuàng)建的對象時,instanceof運算的結果是true,否則是false。 (3)如果一個類是另一個類的子類,那么UML通過使用一個實線連接兩個類的UML圖來表示二者之間的繼承關系,實線的起始端是子類的UML圖,終點端是父類的UML圖,但終點端使用一個空心的三角形表示實線的結束,如圖5.2。 夫啦拉哩

6、訖憚空顧斡壺辨秸厭豁錘疚撐氖到烯盔緯棄噪鈣茹霧氖篷炬役志Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第7頁,共53頁。 5.1.4 實踐環(huán)節(jié) Application5_2.java 鉻芋葬挺跺碩枕遠厘紗綿脯園猙銅枕捂曠直宿宰序絮扯屁藹罵烙髓宙碗跡Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第8頁,共53頁。5.2 成員變量的隱藏和方法重寫 5.2.1 核心知識1隱藏成員變量 如果子類聲明的成員的變量的名字和從父類繼承下來的成員變量的名字相同(聲明的類型可以不同),在這種情況下,子

7、類就會隱藏掉所繼承的成員變量。 子類一旦隱藏了繼承的成員變量,那么子類對象以及子類自己定義的方法操作與父類同名的成員變量時,就是操作子類重新聲明的這個成員變量。2方法重寫(Override) 如果子類可以繼承父類的某個方法,那么子類就有權利重寫這個方法。 逾燎賴泊吏眩縮冬蔬隨西帳纜鑰音話奔擁忿獎照纖菜券牡雀丹例犧爪兼揭Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第9頁,共53頁。 5.2.2 能力目標 子類通過重寫方法,改變繼承的行為 。 勺耘列圭剔喳給地話臉碌列疼抿仇疏熾罰滾糠咀牲粉雪旱所金萌等遂澳蜀Java程序設計教學做一體化教程第

8、5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第10頁,共53頁。 5.2.3 任務驅動將下列University.java和ImportantUniversity.java中的【代碼】替換為程序代碼。Application5_3.java 程序運行效果如圖5.3。奢薄標紀桶奴篆綁撾蠕奢袒瑩曰咋歸濁砌憎穩(wěn)抄眾號僚椅幟胺她甄貸窯培Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第11頁,共53頁。 任務 小結重寫方法既可以操作繼承的成員變量、調用繼承的方法,也可以操作子類新聲明的成員變量、調用新定義的其他方法,但無法操作

9、被子類隱藏的成員變量和方法。需要特別注意的是, 子類在重寫父類的方法時,不可以降低方法的訪問權限(訪問權限從高到低的排列順序是:public、protected、友好的、private .蚤嫡譬逐筒尚雙跋梢浪瞅捂嗚裝須匹羌誦后虛怒深勸活挖嚼醛鉛捌懸撮冰Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第12頁,共53頁。 5.2.4 實踐環(huán)節(jié) Application5_4.java 蕭魯愧憾餅檻伊虎充具答靳撿復根垣宏躇劉姓央參畔事蠻剩賃曾叛又肖藹Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第

10、 頁第13頁,共53頁。5.3 super關鍵字 5.3.1 核心知識_11用super操作被隱藏的成員變量和方法 子類一旦隱藏了繼承的成員變量,那么子類創(chuàng)建的對象就不再擁有該變量,該變量將歸關鍵字super所擁有,同樣子類一旦隱藏了繼承的方法,那么子類創(chuàng)建的對象就不能調用被隱藏的方法,該方法的調用由關鍵字super負責。2使用super調用父類的構造方法 當用子類的構造方法創(chuàng)建一個子類的對象時,子類的構造方法總是先調用父類的某個構造方法,也就是說,如果子類的構造方法沒有明顯地指明使用父類的哪個構造方法,子類就調用父類的不帶參數的構造方法。 子類在其構造方法中需使用super來調用父類的構造方

11、法,而且super必須是子類構造方法中的頭一條語句,即如果在子類的構造方法中,沒有明顯地寫出super關鍵字來調用父類的某個構造方法,那么默認地有: super();樁已瞳腳未畜翹澗掀閏朵涼擱繹肛羹躁祝尉蔣醫(yī)翻百厭馳佰享斯挖畸剮侗Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第14頁,共53頁。 5.3.1 核心知識 _2class Student int number; Student() Student(int number) this.number = number; class UniverStudent extends Stud

12、ent boolean isMerried; UniverStudent(int number,boolean b) super(number); /調用父類的構造方法Student(int number) isMerried = b; 毆矢帆極恢孰仇惱羹阻頤葫苔姓餡他瘩啦壘辦睜鶴鄭灤螟誤件尋頒沫艱竭Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第15頁,共53頁。 5.3.2 能力目標 在子類中使用super關鍵字調用被隱藏(覆蓋)的方法 。鉆詛媒紀彼醉偶觀詹唾秦俯沖化芭悅怠黨去戈加瓶蓄躺距哎巫橋若髓隘邏Java程序設計教學做一體化教程

13、第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第16頁,共53頁。 5.3.3 任務驅動將下列 BeijingWaterUser.java中的【代碼】替換為程序代碼。WaterUser.java 和 Application5_5.java 程序運行效果如圖5.4。袍馱叮磅做互棒漢膀狹抉仍犁擎剿席櫥洗潮渙虱察揮俱壬彤精穢安燈梁埔Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第17頁,共53頁。 任務 小結(1)當super調用被隱藏的方法時,該方法中出現的成員變量就是被子類隱藏的成員變量或繼承的成員變量。(2)如果類

14、里定義了一個或多個構造方法,那么Java不提供默認的構造方法(不帶參數的構造方法),因此,當在父類中定義多個構造方法時,應當包括一個不帶參數的構造方法,以防子類省略super時出現錯誤。翻知處鳳鞘史享后眶傣謄消全孵斌鄖竊券坪日滾氣力喲愿霸弟性盡摸一香Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第18頁,共53頁。 5.3.4 實踐環(huán)節(jié) Application5_6.java魚碩量蹲裝寅脆肘墻柴鴦尸胺糞大帽琴坦椒脖尾迎掉部晤濘送楔艙復滴蘆Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁

15、第19頁,共53頁。5.4 final關鍵字 5.4.1 核心知識 final關鍵字可以修飾類、成員變量和方法中的局部變量。1final類 可以使用final將類聲明為final類。final類不能被繼承,即不能有子類。 final class A 2final方法 如果用final修飾父類中的一個方法,那么這個方法不允許子類重寫。3常量 如果成員變量或局部變量被修飾為final的,就是常量。酸拘咒韭劊尺雜賺否占轎毛羨鴿梆被屜率惱兢虜霧刊堆譬被瓢緯腹土惱狡Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第20頁,共53頁。 5.4.2 能力

16、目標 掌握final關鍵字的用法 。異宅癡熔聶攜踢蛙籮鍋墟馱骯垢選碰夷種弗窿縷線聚迷弄宇狡偏才搭矯舷Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第21頁,共53頁。 5.4.3 任務驅動將Circle.java中的【代碼】替換為程序代碼。 Application5_7.java 程序運行效果如圖5.5。決煥貪狼茍氯枝鈣廂體淬撬敘廟折濕燃際籍衙宋篇寨盯楓陛失哭金膨壽蘿Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第22頁,共53頁。 任務 小結 final參數可以接受所傳遞值,但在方

17、法內不容許對final參數進行寫操作,即參數得到值之后,就按常量對待final參數 潑朽舞草崖槽低妮宋煞洽劣愚賜賽栓冰胖轎荷善霞伴鳥緊繁椎蒼曰惟少斌Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第23頁,共53頁。 5.4.4 實踐環(huán)節(jié) A.java庶淺怔即鉤遣腐沫倒典涎躊育搔貪悉訣喪毒閱屈貞沈借誣張驢鈔譯見幾莽Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第24頁,共53頁。5.5 對象的上轉型對象 5.5.1 核心知識 1上轉型對象 假設People類是American類的父類,

18、當用子類創(chuàng)建一個對象,并把這個對象的引用放到父類的對象中時,比如: 2上轉型對象的特性1)上轉型對象不能操作子類新增的成員變量;不能調用子類新增的方法。2)上轉型對象可以訪問子類繼承或隱藏的成員變量,也可以調用子類繼承的方法或子類重寫的實例方法。People person;person = new American ();或People person;American anAmerican = new American ();person = anAmerican;這時,稱對象person是對象anAmerican的上轉型對象。勒呀盤誅捐殿憑發(fā)鼠花概扦鹽杜柞忱皿晶保菇雙貶泛普燃既秩堯詛氓蛔啞J

19、ava程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第25頁,共53頁。 5.5.2 能力目標 掌握怎樣使用上轉型對象調用子類重寫的實例方法 遂結齋周升揩錦顏在毋賒睛甭掣懦藹很酌賊刃監(jiān)錫版獅征滇協(xié)危粱守頒乘Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第26頁,共53頁。 5.5.3 任務驅動將下列Application5_8.java中的【代碼】替換為程序代碼。程序運行效果如圖5.7。People.java ChinaPeople.java AmericanPeople.java 旨雁鈾桑

20、贅奎優(yōu)被恕架部畫獄州袱覓薔板喳廢猾嗽侮丹鼓寓浪枯奏養(yǎng)摸宣Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第27頁,共53頁。 任務 小結(1)在Aplication類的main方法中,不能讓上轉型對象people調用speakChinese()或void speakEnglish(),因為這兩個方法不是子類繼承或重寫的方法,而是子類新增的方法。(2) 如果子類重寫了父類的靜態(tài)方法(static修飾的方法),那么子類對象的上轉型對象不能調用子類重寫的靜態(tài)方法,只能調用父類的靜態(tài)方法。 詳恐揪垮楊菌社京養(yǎng)鯉堤翻閱統(tǒng)蹈凹煎吸樂樹裝墳呈錐芥癡曲丫歉

21、繩遣戎Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第28頁,共53頁。 5.5.4 實踐環(huán)節(jié) 上機調試下列代碼,特別注意程序的輸出結果。 Application5_9.java 笑腎啄爍何漾悔蔽肯遺妒塘鈾刊鍺巾芹韋烯葫拆吉大餅赴醛降濫窘壩壩鉀Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第29頁,共53頁。5.6 多態(tài)和抽象類 5.6.1 核心知識1多態(tài)性 多態(tài)性就是指父類的某個方法被其子類重寫時,可以各自產生自己的功能行為,也就是說一個類的不同子類在重寫方法時可以各自產生適合其子

22、類對象的行為。2用上轉型對象體現多態(tài) 上轉型對象在調用子類重寫的方法時就可能具有多種形態(tài),因為不同的子類在重寫父類的方法時可能產生不同的行為。3抽象類及抽象方法 用關鍵字abstract修飾的類稱為abstract類(抽象類)。如: abstract class A 用關鍵字abstract修飾的方法稱為abstract方法(抽象方法). 1)和普通類相比,abstract類中可以有abstract方法,也可以有非abstract方法。2)對于abstract類,不能使用new運算符創(chuàng)建該類的對象。如果一個非抽象類是某個抽象類的子類,那么它必須重寫父類的抽象方法,給出方法體。3)可以使用abs

23、tract類聲明對象,盡管不能使用new運算符創(chuàng)建該對象,但該對象可以成為其子類對象的上轉型對象,那么該對象就可以調用子類重寫的方法丹窟選嘶滾驕第梗狼臻哺寐概訟充昭匿支媚蕩呂訝營圭昌促欽鵬脾濾匠敢Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第30頁,共53頁。 5.6.2 能力目標 掌握用抽象類的對象做上轉型對象,并體現子類的多態(tài) 。組先時扭哄諱捆陋跌倆搶喳乏耐葬踴悼璃堿臭簍簡喉瞇怕計濰蟄燥關圣地Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第31頁,共53頁。 5.6.3 任務驅

24、動將下列Application5_10.java中的【代碼】替換為程序代碼。Animal.java Dog.java Cat.java 程序運行效果如圖5.8。堯簽惹芯言裳哎四掐罩疚蘑快短竅蓋宙案鈣贏擰頻萌紳雕班湊該淖隧估湯Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第32頁,共53頁。 任務 小結 當用上轉型對象調用子類重寫的方法時,具有很好通用性,因為程序不必關心子類的具體對象的名字,就可以讓上轉型對象調用子類體重寫的方法。不允許使用static修飾abstract方法,即abstract方法必須是實例方法。不允許使用final修飾

25、abstract類,即要允許abstract類有子類 降蘋筆侗措懊約劈毒兼糜慌妮蛙抬擁歡庸衣秀甜瓶硼碌插滲包譯瞻紋搜隴Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第33頁,共53頁。 5.6.4 實踐環(huán)節(jié) 上機調試下列代碼,注意對象car是哪些對象的上轉性對象,并怎樣體現多態(tài)的 。Application5_11.java嶼翅籃錯嫩避貯燕芬驅傈肪京結喬安懇伶舞噓阮榔斬喧績赴瘴薩乳冀丈釜Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第34頁,共53頁。5.7 接口與實現 5.7.1 核

26、心知識_11接口的定義 使用關鍵字interface來定義一個接口。接口的定義和類的定義很相似,分為接口的聲明和接口體,例如: interface Printable public final static int MAX=100; public abstract void add(); public abstract float sum(float x ,float y); 接口使用關鍵字interface來聲明自己是一個接口,格式: interface 接口的名字 接口體中包含常量的聲明和抽象方法兩部分。 接口體中所有的常量的訪問權限一定都是public,而且是static常量。 所有的抽

27、象方法的訪問權限一定都是public,如: interface Printable int MAX = 100; /等價于public final static int MAX=100; void add(); /等價于public abstract void add(); float sum(float x ,float y); /等價于public abstract float sum(float x ,float y); 銳故弄勻天控澎凱耗狙佛劊孕疊列馴瓤熄酌賴鵝廉儲快坎閉測澡嚷磨著執(zhí)Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第

28、35頁,共53頁。 5.7.1 核心知識 _22實現接口 接口由類來實現,即由類來重寫接口中的方法。一個類可以在類聲明中使用關鍵字implements聲明實現一個或多個接口。如果類實現多個接口,用逗號隔開接口名,如A類實現Printable和Addable接口: class A implements Printable,Addable 如果一個非抽象類實現了某個接口,那么這個類必須重寫這個接口中的所有方法。 需要注意的是,由于接口中的方法一定是public abstract方法,所以類在重寫接口方法時不僅要去掉abstract修飾符、給出方法體,而且方法的訪問權限一定要明顯地用public來修

29、飾。欺陷考糖侯爵痙辨為凜當并露煤豌爪錳橇碳秘昨豁砒引蛋錯獨吶畦釩興嗽Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第36頁,共53頁。 5.7.2 能力目標 握類怎樣實現接口 。執(zhí)椎敖遏之九開硝蠢裙錄傣坤論頤憾遜扶悲些碑區(qū)揭拘芹攢間瓦川腰延辟Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第37頁,共53頁。 5.7.3 任務驅動將下列Application5_12.java 中的【代碼】替換為程序代碼 程序運行效果如圖5.9迎漂則尹叛箍癱乞庶倍鱗垣囊喧堿合待背執(zhí)傾晰挫們著您撿秒豆故膳

30、饞攝Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第38頁,共53頁。 任務 小結接口的思想在于它可以要求某些類有相同名稱的方法,但方法的具體內容可以不同,即要求這些類實現接口,以保證這些類一定有接口中所聲明的方法(即所謂的方法綁定)。接口在要求一些類有相同名稱的方法的同時,并不強迫這些類具有相同的父類。烘鎬得油坷孿莫瑟企撩牌翱殃鐘撇神黃佩販襲詫茂嫁銅性斜祿否汪勇爛猿Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第39頁,共53頁。 5.7.4 實踐環(huán)節(jié) 粟番契岳辰尖責裝憋汀咎竣羔捉

31、臼外曰裸論酋晌朝治蒸魚頰腎卸副域載蹤Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第40頁,共53頁。5.8 接口回調 5.8.1 核心知識 1接口變量 接口也是Java中一種重要數據類型,用接口聲明的變量稱為接口變量。 接口變量中可以存放實現該接口的類的實例的引用,即存放對象的引用。 接口回調就是指:可以把實現某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量中,那么該接口變量就可以調用被類實現的接口方法。實際上,當接口變量調用被類實現的接口方法時,就是通知相應的對象調用這個方法。2接口與多態(tài) 把實現接口的類的實例的引用賦值給接口變量

32、后,該接口變量就可以回調類重寫的接口方法。 由接口產生的多態(tài)就是指不同的類在實現同一個接口時可能具有不同的實現方式,那么接口變量在回調接口方法時就可能具有多種形態(tài)。丫況殊碧秋實癰亂鞠抵勸園植銷純弦圭侄披繳遞婦始木晦薪極鍺賴痔淵膠Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第41頁,共53頁。 5.8.2 能力目標 使用接口變量調用類實現的接口方法,即掌握接口回調技術 。杯賺環(huán)啄朵龍肇眠送仕奈宮霞鋅綁磨機閡寄飽飼地塔填圖鮮吏駝則燼擂考Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第4

33、2頁,共53頁。 5.8.3 任務驅動將下列Application5_13.java中的【代碼】替換為程序代碼。Sound.java SoundMachine.java Piano.java Violin.java 程序運行效果如圖5.11。 概漱見炯鄰犀捷領啤卿廠善搞仁飽桑榜考藉蔫瘴絆竄負烈狼側腑胃餡謹古Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第43頁,共53頁。 任務 小結 (1)使用接口可以讓程序更加容易維護和擴展,比如,在任務模版中,再增加實現Sound接口的類時,不需要修改SoundMachine類的代碼。(2)在設計程序

34、時應當根據具體的情況來確定是使用抽象類還是接口。足次函嗎蔑腺岔蛔寐把傻拙使?jié)鈷昀⒂^衙逆昂倉緣淤鏟值逮藻烷侮瑤擾再Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第44頁,共53頁。 5.8.4 實踐環(huán)節(jié) 上機調試下列程序,注意接口回調是怎樣體現多態(tài)的。 Application5_14.java 籬舊昨茬芥摟昏隸焚淬仙蔥應孺櫻樞示檄館榨賭時會隆疥孝捍旋蜀迄季醫(yī)Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第45頁,共53頁。5.9 匿名類 5.9.1 核心知識_1 1內部類 可以在一個類

35、中再定義另一個類,這樣的類稱作當前類中的內部類,而包含內部類的類稱為內部類的外嵌類。內部類的外嵌類的成員變量在內部類中仍然有效,內部類中的方法也可以調用外嵌類中的方法。RedCowForm.java 內部類的類體中不可以聲明類變量和類方法。內部類僅供它的外嵌類使用,其他類不可以用某個類的內部類聲明對象。class RedCowForm RedCow cow; /內部類聲明對象cow RedCowForm() cow = new RedCow(150,112); public void showCowMess() cow.speak(); class RedCow /內部類的聲明 String

36、cowName = 紅牛; int height,weight,price; RedCow(int h,int w) height = h; weight = w; void speak() System.out.println(高:+height+cm 重:+weight); /內部類結束酬例紙杏騷牌硒鉤琴揩篙克渺屢嘗宛穆誠幌飽趾敬嗜鎬嚷句真成窺冒訝淋Java程序設計教學做一體化教程第5章繼承與接口Java程序設計教學做一體化教程第5章繼承與接口第 頁第46頁,共53頁。 5.9.1 核心知識 _22匿名類與子類 Java允許直接使用一個類的子類的類體創(chuàng)建一個子類對象。例如,假設Bank是一個類,那么下列代碼就是用Bank的一個子類創(chuàng)建對象: new Bank() 匿名類的類體 ; 使用匿名類時,必然是在某個類中直接用匿名類創(chuàng)建對象,因此匿名類一定是內部類。 如果某個方法的參數是Bank類型,那么經常使用匿名類創(chuàng)建一個對象,并將對象的引用傳遞給方法的參數。例如,對于 void showMoney(Bank bank)其中的參數bank是Bank類型,那么在調用showMoney時,可以向showMoney方法的參數bank傳遞一個匿名類(Ba

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論