




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第六章類地多態(tài)
第六章類地多態(tài)類地多態(tài)六.一接口六.二內(nèi)部類六.三六.一類地多態(tài)對象轉(zhuǎn)型 將子類對象賦值給父類引用類型時,對象類型地轉(zhuǎn)換過程是自動行地。而要將一個父類對象類型轉(zhuǎn)換為一個子類對象類型,則需要注意兩點:(一)只有當(dāng)父類對象引用指向地實際上是一個子類對象時,才能將父類對象類型轉(zhuǎn)換為子類對象類型;(二)這種轉(zhuǎn)換需要強制行,系統(tǒng)不會自動行轉(zhuǎn)換。如下代碼所示:六.一類地多態(tài)抽象類 在面向?qū)ο蟮馗拍?我們知道所有地對象都是通過類來描繪地,但是并不是所有地類都是用來描繪對象地,如果一個類沒有包含足夠地信息來描繪一個具體地對象,這樣地類就是抽象類。抽象類往往用來表征我們在對問題領(lǐng)域行分析,設(shè)計得出地抽象概念,是對一系列看上去不同,但是本質(zhì)上相同地具體概念地抽象,我們不能把它們實例化(拿不出一個具體地東西)所以稱之為抽象。 在Java所謂地抽象類,即是在類地說明用關(guān)鍵字abstract修飾地類。 一般情況下,抽象類可以包含一個或多個只有方法聲明而沒有定義方法體地方法。當(dāng)遇到這樣一些類,類地某個或某些方法不能提供具體地實現(xiàn)代碼時,可將它們定義成抽象類。六.一類地多態(tài)抽象類 定義抽象類地一般格式如下:六.一類地多態(tài)抽象類在使用抽象類時需要注意幾點:(一)抽象類不能被實例化,實例化地工作應(yīng)該由它地子類來完成,它只需要有一個引用即可。(二)抽象方法需要由子類來行重寫。(三)只要包含一個抽象方法地抽象類,該方法需要要定義成抽象類,不管是否還包含有其它方法。(四)抽象類可以包含具體地方法,當(dāng)然也可以不包含抽象方法。(五)子類地抽象方法不能與父類地抽象方法同名。(六)abstract不能與final并列修飾同一個類。(七)abstract不能與private,static,final或native并列修飾同一個方法六.一類地多態(tài)抽象方法 抽象方法是一種特殊地方法,它只有聲明,而沒有具體地實現(xiàn),即定義方法時可以只給出方法頭(包括方法名,形式參數(shù)列表,返回值類型及修飾符),而不必給出方法體(即方法實現(xiàn)地細節(jié))。抽象方法地語法格式為: 抽象方法需要用abstract關(guān)鍵字行修飾。這種方法只聲明返回地數(shù)據(jù)類型,方法名稱與所需地參數(shù),沒有方法體,也就是說抽象方法只需要聲明而不需要實現(xiàn)。 注意:抽象方法它沒有大括號,有大括號但大括號沒有任何內(nèi)容地方法,仍不是抽象方法。抽象方法需要使用關(guān)鍵字abstract修飾,包含抽象方法地類需要聲明為抽象類,即在聲明類時也使用關(guān)鍵字abstract標(biāo)明。六.二接口什么是接口 Java語言,除了類與數(shù)組之外,還可以定義與使用另外一類引用數(shù)據(jù)類型——接口(Interface)。 接口是與類一種相似又有區(qū)別地一種結(jié)構(gòu),接口地設(shè)計與調(diào)用也是Java程序設(shè)計地重要技術(shù)。學(xué)之初,我們可以將接口理解成一種極端地抽象類,該類只有常量與抽象方法地定義,而不提供變量與方法地實現(xiàn)。例如:六.二接口接口地定義 與類地結(jié)構(gòu)相似,接口也分為接口聲明與接口體兩部分。定義接口地一般格式如下: 接口地訪問限定只有public與缺省地。 interface是聲明接口地關(guān)鍵字,與class類似。 接口地命名需要符合標(biāo)識符地規(guī)定,并且接口名需要與文件名相同。六.二接口接口地定義 對接口體聲明地方法,系統(tǒng)默認為是"publicabstract"地,也不需要指定;對于一些特殊用途地接口,在處理過程會遇到某些異常,可以在聲明方法時加上"throw異常列表",以便捕捉出現(xiàn)在異常列表地異常。六.二接口接口地實現(xiàn) 所謂接口地實現(xiàn),即是在實現(xiàn)接口地類重寫接口給出地所有方法,書寫方法體代碼,完成方法所規(guī)定地功能。定義實現(xiàn)接口類地一般格式如下: 需要提醒地是,可能實現(xiàn)接口地某些類不需要接口聲明地某個方法,但也需要實現(xiàn)它。類似這種情況,一般以空方法體(即以"{}"括起沒有代碼地方法體)實現(xiàn)它。六.二接口接口地多重繼承 與Java類之間地繼承關(guān)系類似,接口之間也可以行繼承,也就是說可以定義新地接口繼承現(xiàn)有接口,添加新地常量屬與抽象方法定義,在其父接口地基礎(chǔ)上一步深化或分化其"規(guī)劃"作用,當(dāng)然最終還是要靠其實現(xiàn)類實現(xiàn)所有規(guī)劃地功能。六.二接口抽象類與接口地對比
六.二接口抽象類與接口地對比 如果妳擁有一些方法并且想讓它們地一些有默認實現(xiàn),那么使用抽象類吧。 如果妳想實現(xiàn)多重繼承,那么妳需要使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現(xiàn)多個接口。因此妳就可以使用接口來解決它。 如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現(xiàn)了該接口地類。六.三內(nèi)部類成員內(nèi)部類 與普通地外層類不同,成員內(nèi)部類與其所在地外層類之間存在著邏輯上地隸屬關(guān)系,或者說依賴關(guān)系——內(nèi)部類地對象不能單獨存在,它需要依賴一個其外層類地對象。作為這種喪失"獨立"地"回報",在內(nèi)部類可以直接訪問其外層類地成員,包括屬與方法,即使這些屬與方法聲明為private。 成員內(nèi)部類是依附外部類而存在地,也就是說,如果要創(chuàng)建成員內(nèi)部類地對象,前提是需要存在一個外部類地對象。六.三內(nèi)部類局部內(nèi)部類 局部類是內(nèi)部類地一種特殊形式,即在Java方法或語句塊定義地類型。局部類相當(dāng)于方法地局部變量,其作用域僅限于其所在地方法體或語句塊,因此聲明時不必也不允許加private,protect或public等訪問控制修飾符,同時局部類也不允許定義static屬與方法。相對于普通地內(nèi)部類,局部類看起來是一種更"極端"地臨時地,局部模型。 局部內(nèi)部類是定義在一個方法或者一個作用域里面地類,它與成員內(nèi)部類地區(qū)別在于局部內(nèi)部類地訪問僅限于方法內(nèi)或者該作用域內(nèi)。六.三內(nèi)部類局部內(nèi)部類
六.三內(nèi)部類匿名內(nèi)部類 所謂匿名類(AnonymouseClass)是一種沒有類名地內(nèi)部類,通常更多地出現(xiàn)在處理地程序。在某些程序,往往需要定義一個功能特殊且簡單地類,而只想定義該類地一個對象,并把它作為參數(shù)傳遞給一個方法。此種情況下只要該類是一個現(xiàn)有類地派生或?qū)崿F(xiàn)一個接口,就可以使用匿名類。 匿名內(nèi)部類應(yīng)該是時我們編寫代碼時用得最多地,在編寫監(jiān)聽地代碼時使用匿名內(nèi)部類不但方便,而且使代碼更加容易維護。作為內(nèi)部類地另一種特殊形式,匿名類可以被認為是局部類地一種簡化,當(dāng)只在一處使用到某個類型時,可以將之定義為局部類,而如果只是創(chuàng)建并使用該類地一個實例地話,那么連類地名字都可以省略。六.三內(nèi)部類靜態(tài)內(nèi)部類 靜態(tài)內(nèi)部類(StaticInnerClass)也稱靜態(tài)嵌套類(StaticNestedClass),也是定義在另一個類里面地類,只不過在類地前面多了一個關(guān)鍵字static。靜態(tài)內(nèi)部類是不需要依賴于外部類地,這點與類地靜態(tài)成員屬有點類似,并且它不能使用外部類地非static成員變量或者方法,這點很好理解,因為在沒有外部類地對象地情況下,可以創(chuàng)建靜態(tài)內(nèi)部類地對象,如果允許訪問外部類地非static成員就會產(chǎn)
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出差人員住宿標(biāo)準(zhǔn)及費用結(jié)算合同
- 教學(xué)課件怎么設(shè)計
- 消防救援知識綜合測試試卷含應(yīng)急管理等要點
- 三年級快樂寶貝教學(xué)課件
- 印刷包裝設(shè)計中的綠色供應(yīng)鏈管理考核試卷
- 冷鏈物流與電子商務(wù)融合分析考核試卷
- 表面處理對樂器零件壽命的影響考核試卷
- 影視媒體對動漫產(chǎn)業(yè)產(chǎn)業(yè)鏈重構(gòu)的影響考核試卷
- 行業(yè)影響力評估考核試卷
- 離譜面試題目及答案
- 2023-2024學(xué)年四川省雅安市小學(xué)數(shù)學(xué)一年級下冊期末高分試卷
- 網(wǎng)絡(luò)游戲代理合同通用版范文(2篇)
- GB/T 6414-1999鑄件尺寸公差與機械加工余量
- GB/T 27773-2011病媒生物密度控制水平蜚蠊
- GB/T 12817-1991鐵道客車通用技術(shù)條件
- 質(zhì)量風(fēng)險識別項清單及防控措施
- 【課件超聲】常見的超聲效應(yīng)與圖象偽差
- 外墻保溫、真石漆工程施工方案
- 自然指數(shù)NatureIndex(NI)收錄的68種自然科學(xué)類期刊
- 建立良好的同伴關(guān)系-課件-高二心理健康
- 老年人健康管理隨訪表
評論
0/150
提交評論