




已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京傳智播客教育 ,繼 承(下),畢向東,北京傳智播客教育 ,4 繼承(下),4.7 抽象類 4.8 接口,北京傳智播客教育 ,4.7 抽象類,4.7.1 抽象類概述 4.7.2 抽象類的特點(diǎn) 4.7.3 抽象類舉例代碼講解 4.7.4 抽象類相關(guān)問(wèn)題,北京傳智播客教育 ,4.7.1 抽象類概述,抽象定義: 抽象就是從多個(gè)事物中將共性的,本質(zhì)的內(nèi)容抽取出來(lái)。 例如:狼和狗共性都是犬科,犬科就是抽象出來(lái)的概念。 抽象類: Java中可以定義沒(méi)有方法體的方法,該方法的具體實(shí)現(xiàn)由子類完成,該方法稱為抽象方法,包含抽象方法的類就是抽象類。 抽象方法的由來(lái): 多個(gè)對(duì)象都具備相同的功能,但是功能具體內(nèi)容有所不同,那么在抽取過(guò)程中,只抽取了功能定義,并未抽取功能主體,那么只有功能聲明,沒(méi)有功能主體的方法稱為抽象方法。 例如:狼和狗都有吼叫的方法,可是吼叫內(nèi)容是不一樣的。所以抽象出來(lái)的犬科雖然有吼叫功能,但是并不明確吼叫的細(xì)節(jié)。,北京傳智播客教育 ,4.7.2 抽象類的特點(diǎn),抽象類和抽象方法必須用abstract關(guān)鍵字來(lái)修飾。 抽象方法只有方法聲明,沒(méi)有方法體,定義在抽象類中。 格式:修飾符 abstract 返回值類型 函數(shù)名(參數(shù)列表) ; 抽象類不可以被實(shí)例化,也就是不可以用new創(chuàng)建對(duì)象。原因如下: 抽象類是具體事物抽取出來(lái)的,本身是不具體的,沒(méi)有對(duì)應(yīng)的實(shí)例。例如:犬科是一個(gè)抽象的概念,真正存在的是狼和狗。 而且抽象類即使創(chuàng)建了對(duì)象,調(diào)用抽象方法也沒(méi)有意義。 抽象類通過(guò)其子類實(shí)例化,而子類需要覆蓋掉抽象類中所有的抽象方法后才可以創(chuàng)建對(duì)象,否則該子類也是抽象類。,北京傳智播客教育 ,4.7.3 抽象類舉例代碼講解,老師示例,根據(jù)給出內(nèi)容設(shè)計(jì)繼承體系 具體事物:基礎(chǔ)班老師,就業(yè)班老師 共性:姓名,所屬教室,講課。 學(xué)員示例(練習(xí)) 具體事物:基礎(chǔ)班學(xué)員,就業(yè)班學(xué)員 共性:姓名,學(xué)習(xí),休假。 雇員示例: 需求:公司中程序員有姓名,工號(hào),薪水,工作內(nèi)容。 項(xiàng)目經(jīng)理除了有姓名,工號(hào),薪水,還有獎(jiǎng)金,工作內(nèi)容。 對(duì)給出需求進(jìn)行數(shù)據(jù)建模。,北京傳智播客教育 ,4.7.4 抽象類相關(guān)問(wèn)題,抽象類中是否有構(gòu)造函數(shù)? 抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存? 抽象類中可不可以沒(méi)有抽象方法?,北京傳智播客教育 ,4.8 接口,格式: interface 接口中的成員修飾符是固定的。 成員常量:public static final 成員函數(shù):public abstract 接口的出現(xiàn)將“多繼承”通過(guò)另一種形式體現(xiàn)出來(lái),即“多實(shí)現(xiàn)”。,北京傳智播客教育 ,4.8.1 接口的特點(diǎn),接口是對(duì)外暴露的規(guī)則。 接口是程序的功能擴(kuò)展。 接口可以用來(lái)多實(shí)現(xiàn)。 類與接口之間是實(shí)現(xiàn)關(guān)系,而且類可以繼承一個(gè)類的同時(shí)實(shí)現(xiàn)多個(gè)接口。 接口與接口之間可以有繼承關(guān)系。,北京傳智播客教育 ,4.9 多態(tài),定義:某一類事物的多種存在形態(tài)。 例:動(dòng)物中貓,狗。 貓這個(gè)對(duì)象對(duì)應(yīng)的類型是貓類型 貓 x = new 貓(); 同時(shí)貓也是動(dòng)物中的一種,也可以把貓稱為動(dòng)物。 動(dòng)物 y = new 貓(); 動(dòng)物是貓和狗具體事物中抽取出來(lái)的父類型。 父類型引用指向了子類對(duì)象。,北京傳智播客教育 ,4.9 多態(tài),體現(xiàn): 父類或者接口的引用指向或者接收自己的子類對(duì)象。 作用: 多態(tài)的存在提高了程序的擴(kuò)展性和后期可維護(hù)性 前提: 需要存在繼承或者實(shí)現(xiàn)關(guān)系 要有覆蓋操作,北京傳智播客教育 ,多態(tài)的特點(diǎn),成員函數(shù): 編譯時(shí):要查看引用變量所屬的類中是否有所調(diào)用的成員。 在運(yùn)行時(shí):要查看對(duì)象所屬的類中是否有所調(diào)用的成員。 成員變量: 只看引用變量所屬的類。,北京傳智播客教育 ,內(nèi)部類,將一個(gè)類定義在另一個(gè)類的里面,對(duì)里面那個(gè)類就稱為內(nèi)部類(內(nèi)置類,嵌套類)。 訪問(wèn)特點(diǎn): 內(nèi)部類可以直接訪問(wèn)外部類中的成員,包括私有成員。 而外部類要訪問(wèn)內(nèi)部類中的成員必須要建立內(nèi)部類的對(duì)象。,北京傳智播客教育 ,內(nèi)部類的位置,內(nèi)部類定義在成員位置上 可以被private static成員修飾符修飾。 被static修飾的內(nèi)部類只能訪問(wèn)外部類中的靜態(tài)成員。 內(nèi)部類定義在局部位置上 也可以直接訪問(wèn)外部類中的成員。 同時(shí)可以訪問(wèn)所在局部中的局部變量,但必須是被final修飾的。,北京傳智播客教育 ,匿名內(nèi)部類,就是內(nèi)部類的簡(jiǎn)化寫法。 前提: 內(nèi)部類可以繼承或?qū)崿F(xiàn)一個(gè)外部類或者接口。 格式為: new 外部類名或者接口名()覆蓋類或者接口中的代碼,(也可以自定義內(nèi)容。) 簡(jiǎn)單理解: 就是建立一個(gè)建立一個(gè)帶內(nèi)容的外部類或者接口的子類匿名對(duì)象。,北京傳智播客教育 ,異常,異常的體系 Throwable Error 通常出現(xiàn)重大問(wèn)題如:運(yùn)行的類不存在或者內(nèi)存溢出等。 不編寫針對(duì)代碼對(duì)其處理 Exception 在運(yùn)行時(shí)運(yùn)行出現(xiàn)的一起情況,可以通過(guò)try catch finally Exception和Error的子類名都是以父類名作為后綴。,北京傳智播客教育 ,Throwable中的方法,getMessage() 獲取異常信息,返回字符串。 toString() 獲取異常類名和異常信息,返回字符串。 printStackTrace() 獲取異常類名和異常信息,以及異常出現(xiàn)在程序中的位置。返回值void。 printStackTrace(PrintStream s) 通常用該方法將異常內(nèi)容保存在日志文件中,以便查閱。,北京傳智播客教育 ,throws和throw,throws用于標(biāo)識(shí)函數(shù)暴露出的異常。 throw用于拋出異常對(duì)象。 throws與throw的區(qū)別: thorws用在函數(shù)上,后面跟異常類名。 throw用在函數(shù)內(nèi),后面跟異常對(duì)象。,北京傳智播客教育 ,異常處理,try 需要檢測(cè)的代碼; catch(異常類 變量) 異常處理代碼; finally 一定會(huì)執(zhí)行的代碼; Finally代碼塊只有一種情況不會(huì)被執(zhí)行。就是在之前執(zhí)行了System.exit(0)。,北京傳智播客教育 ,自定義異常,自定義類繼承Exception或者其子類。 通過(guò)構(gòu)造函數(shù)定義異常信息。 例: Class DemoException extends Exception DemoException(String message) super(message); 通過(guò)throw將自定義異常拋出。,北京傳智播客教育 ,異常細(xì)節(jié),RuntimeException以及其子類如果在函數(shù)中被throw拋出,可以不用在函數(shù)上聲明。 一個(gè)方法被覆蓋時(shí),覆蓋它的方法必須拋出相同的異?;虍惓5淖宇?。 如果父類拋出多個(gè)異常,那么重寫(覆蓋)方法必須拋出那些異常的一個(gè)子集,不能拋出新的異常。 介紹異常在分層設(shè)計(jì)時(shí)的層內(nèi)封裝。 例程。,北京傳智播客教育 ,包(package),對(duì)類文件進(jìn)行分類管理。 給類提供多層命名空間。 寫在程序文件的第一行。 類名的全稱的是 包名.類名。 包也是一種封裝形式。,北京傳智播客教育 ,classpath,給JVM提供的一個(gè)環(huán)境變量。 指定類或者包所在的路徑。 classpath變量值的最后有分號(hào)與無(wú)分號(hào)的區(qū)別。 思考:在開發(fā)時(shí),分號(hào)是否需要呢?,北京傳智播客教育 ,包之間的訪問(wèn),被訪問(wèn)的包中的類權(quán)限必須是public的。 類中的成員權(quán)限:public或者protected protected是為其他包中的子類提供的一種權(quán)限 例程,北京傳智播客教育 ,四種權(quán)限,北京傳智播客教育 ,import,簡(jiǎn)化類名。 一個(gè)程序文件中只有一個(gè)package,可以有多個(gè)import。 用來(lái)導(dǎo)包中的類,不導(dǎo)入包中的包。 通常寫import mypack.Demo; 而不寫import mypack.*;為什么?,北京傳智播客教育 ,Jar包,Java的壓縮包 方便項(xiàng)目的攜帶。 方便于使用,只要在classpath設(shè)置jar路徑即可。 數(shù)據(jù)庫(kù)驅(qū)動(dòng),SSH框架等都是以jar包體現(xiàn)的。,北京傳智播客教
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供暖服務(wù)合同范本(5篇)
- 臨時(shí)修繕合同范本
- 鞋類購(gòu)貨合同范本
- 二零二五年度綜合診所護(hù)士定期聘用合同書
- 二零二五年度門店合伙人加盟條件及退出機(jī)制合同
- 二零二五年度事業(yè)單位教師聘用合同:教師社會(huì)保險(xiǎn)及福利保障協(xié)議
- 二零二五年度物業(yè)服務(wù)合同解除條件與業(yè)主訴訟策略研究
- 二零二五年度保險(xiǎn)公司與養(yǎng)老機(jī)構(gòu)老年人意外保險(xiǎn)合同
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)項(xiàng)目合同履行原則與文化創(chuàng)新發(fā)展
- 2025年辦公用地租賃合同標(biāo)準(zhǔn)文本
- 《智慧旅游認(rèn)知與實(shí)踐》課件-第九章 智慧旅行社
- 馬工程《刑法學(xué)(下冊(cè))》教學(xué)課件 第16章 刑法各論概述
- 英國(guó)簽證戶口本翻譯模板(共4頁(yè))
- 現(xiàn)金調(diào)撥業(yè)務(wù)
- 空白個(gè)人簡(jiǎn)歷表格1
- 廣東省中小學(xué)生休學(xué)、復(fù)學(xué)申請(qǐng)表
- GPIB控制VP-8194D收音信號(hào)發(fā)生器指令
- 建立良好師生關(guān)系
- 鋼管、扣件、絲杠租賃明細(xì)表
- 施工現(xiàn)場(chǎng)臨電臨水施工方案
評(píng)論
0/150
提交評(píng)論