freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java多形性ppt課件-wenkub

2022-11-03 04:52:58 本頁(yè)面
 

【正文】 一個(gè)稍微不同的角度說(shuō)明了問(wèn)題: 13 ?現(xiàn)在,仍然返回樂(lè)器( Instrument) 示例。因此編譯器認(rèn)可上述語(yǔ)句,不會(huì)提示一條出錯(cuò)消息。這里,很容易理解 “ 圓屬于形狀的一種類型 ” 等概念。 這意味著我們通常不必決定是否應(yīng)進(jìn)行后期綁定 —— 它是自動(dòng)發(fā)生的。也就是說(shuō),編譯器此時(shí)依然不知道對(duì)象的類型,但方法調(diào)用機(jī)制能自己去調(diào)查,找到正確的方法主體。 ?上述程序最令人迷惑不解的地方全與早期綁定有關(guān),因?yàn)樵谥挥幸粋€(gè) Instrument句柄的前提下,編譯器不知道具體該調(diào)用哪個(gè)方法。所以在這種情況下,編譯器怎樣才能知道 Instrument句柄指向的是一個(gè)Wind, 而不是一個(gè) Brass或 Stringed呢?編譯器無(wú)從得知。這樣一來(lái),類型的整個(gè)操作過(guò)程就顯得極難管理,有失控的危險(xiǎn)。 假設(shè)按照前面的推論,加入 Stringed( 弦樂(lè))和Brass( 銅管)這兩種 Instrument( 樂(lè)器) ? 6 ? 這樣做當(dāng)然行得通,但卻存在一個(gè)極大的弊端:必須為每種新增的 Instrument類編寫與類緊密相關(guān)的方法。Instrument里的接口必須存在于 Wind中,因?yàn)?Wind是從Instrument里繼承得到的。 4 ?可將一個(gè)對(duì)象作為它自己的類型使用,或者作為它的基礎(chǔ)類型的一個(gè)對(duì)象使用。 ? 1)編譯時(shí)多形 在編譯階段,具體調(diào)用哪個(gè)被重載的方法,編譯器會(huì)根據(jù)參數(shù)的不同來(lái)靜態(tài)確定調(diào)用相應(yīng)的方法。 ? 2)運(yùn)行時(shí)多形 由于子類繼承了父類所有的屬性(私有的除外),所以子類對(duì)象可以作為父類對(duì)象使用。取得一個(gè)對(duì)象句柄,并將其作為基礎(chǔ)類型句柄使用的行為就叫作 “ 上溯造型 ” —— 因?yàn)槔^承樹的畫法是基礎(chǔ)類位于最上方。從 Wind向 Instrument的上溯造型可能 “ 縮小 ” 那個(gè)接口,但不可能把它變得比Instrument的接口還要小。這意味著第一次就要求多得多的編程量。 ?假如只寫一個(gè)方法,將基礎(chǔ)類作為自變量或參數(shù)使用,而不是使用那些特定的衍生類,豈不是會(huì)簡(jiǎn)單得多?也就是說(shuō),如果能不顧衍生類,只讓自己的代碼與基礎(chǔ)類打交道,那么省下的工作量將是難以估計(jì)的。為了理解這個(gè)問(wèn)題,這里探討一下 “ 綁定 ” 這個(gè)主題。 ?解決的方法就是 “ 后期綁定 ” ,它意味著綁定在運(yùn)行期間進(jìn)行,以對(duì)象的類型為基礎(chǔ)。 ?不同的語(yǔ)言對(duì)后期綁定的實(shí)現(xiàn)方法是有所區(qū)別的。它可有效地 “ 關(guān)閉 ” 動(dòng)態(tài)綁定,編譯器就可為 final方法調(diào)用生成效率更高的代碼。下面繼承圖展示了它們的關(guān)系: 11 ?上溯造型可用下面這個(gè)語(yǔ)句簡(jiǎn)單地表現(xiàn)出來(lái): Shape s = new Circle()。 12 ?當(dāng)調(diào)用其中一個(gè)基礎(chǔ)類方法時(shí)(已在衍生類里覆蓋): ()。由于存在多形性,所以可根據(jù)自己的需要向系統(tǒng)里加入任意多的新類型,同時(shí)毋需更改 tune()方法。 14 ?對(duì)于樂(lè)器例子,假設(shè)在基礎(chǔ)類里加入更多的方法,以及一系列新類,那么會(huì)出現(xiàn)什么情況呢?下面是示意圖: ? ?多形性是一種至關(guān)重要的技術(shù),它允許程序員 “ 將發(fā)生改變的東西同沒(méi)有發(fā)生改變的東西區(qū)分開 ” 。 ?之所以要建立這個(gè)通用接口,原因就是它能為不同的子類型作出不同的表示。換言之, Instrument的作用僅僅是表達(dá)接口,而不是表達(dá)一些具體的實(shí)施細(xì)節(jié)。無(wú)論如何,最好的方法都是在編譯期間捕捉到問(wèn)題。 17 ? 包含了抽象方法的一個(gè)類叫作 “ 抽象類 ” 。通過(guò)這種方法,編譯器可保證抽象類的 “ 純潔性 ” ,不必?fù)?dān)心會(huì)誤用它。如果一個(gè)類沒(méi)必要擁有任何抽象方法,而且想禁止那個(gè)類的所有實(shí)例,這種能力就會(huì)顯得非常有用??蓪⑵湎胂鬄橐粋€(gè) “ 純 ” 抽象類。 ?接口這樣描述自己: “ 對(duì)于實(shí)現(xiàn)我的所有類,看起來(lái)都應(yīng)該象我現(xiàn)在這個(gè)樣子 ” 。有些面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言采用了一個(gè)名為 “ protocol”( 協(xié)議)的關(guān)鍵字,它做的便是與接口相同的事情。要表達(dá)的意思是 “接口看起來(lái)就象那個(gè)樣子,這兒是它具體的工作細(xì)節(jié) ”。由于接口根本沒(méi)有具體的實(shí)施細(xì)節(jié) —— 也就是說(shuō),沒(méi)有與存儲(chǔ)空間與 “ 接口 ” 關(guān)聯(lián)在一起 —— 所以沒(méi)有任何辦法可以防止多個(gè)接口合并到一起。所以在合并多個(gè)接口的時(shí)候, C++的問(wèn)題不會(huì)在 Java中重演。將所有接口名置于 implements關(guān)鍵字的后面,并用逗號(hào)分隔它們。這樣便帶來(lái)了一個(gè)問(wèn)題:到底應(yīng)該使用一個(gè)接口還是一個(gè)抽象類呢?若使用接口,可以同時(shí)獲得抽象類以及接口的好處。 26 :通過(guò)繼承擴(kuò)展接口 ?利用繼承技術(shù),可方便地為一個(gè)接口添加新的方法聲明,也可以將幾個(gè)接口合并成一個(gè)新接口。 28 :常數(shù)分組 ?如確實(shí)不想放棄額外的類型安全性,可構(gòu)建象下面這樣的一個(gè)類: 29 :初始化接口中的字段 ?接口中定義的字段會(huì)自動(dòng)具有 static和 final屬性。 30 ?將一個(gè)類定義置入另一個(gè)類定義中。 ?通常,對(duì)內(nèi)部類的需要并不是特別明顯的,至少不會(huì)立即感覺(jué)到自己需要使用內(nèi)部類。 ?更典型的一種情況是,一個(gè)外部類擁有一個(gè)特殊的方法,它會(huì)返回指向一個(gè)內(nèi)部類的句柄。所以可以非常方便地隱藏實(shí)施細(xì)節(jié)。在返回語(yǔ)句中發(fā)生的上溯造型 —— 除了指向基礎(chǔ)類 Destination的一個(gè)句柄之外,沒(méi)有任何東西超出 dest()的邊界之外。然而,在定義它的那個(gè)作用域之外,它是不可使用的。而且看起來(lái)似乎更讓人摸不著頭腦的是,準(zhǔn)備創(chuàng)建一個(gè) Contents對(duì)象: return new Contents() 但在這之后,在遇到分號(hào)之前,又說(shuō): “ 等一等,讓我先在一個(gè)類定義里再耍一下花招 ” : return new Contents() { private int i = 11。由 new表達(dá)式返回的句柄會(huì)自動(dòng)上溯造型成一個(gè) Contents句柄。 38 :方法和作用域中的內(nèi)部類 ?在匿名內(nèi)部類中, Contents是用一個(gè)默認(rèn)構(gòu)建器創(chuàng)建的。相反,它標(biāo)志著用于包含匿名類的那個(gè)表達(dá)式的結(jié)束。這正是我們將 dest()的自變量設(shè)為 final的原因。所以實(shí)際上,一個(gè)實(shí)例初始化模塊就是一個(gè)匿名內(nèi)部類的構(gòu)建器。除此以外,內(nèi)部類擁有對(duì)封裝類所有元素的訪問(wèn)權(quán)限。 o是個(gè)不屬于 SSelector一部分的句柄,而是位于封裝類里的一個(gè) private字段。這是如何實(shí)現(xiàn)的呢??jī)?nèi)部類必須擁有對(duì)封裝類的特定對(duì)象的一個(gè)引用,而封裝類的作用就是創(chuàng)建這個(gè)內(nèi)部類。在這個(gè)創(chuàng)建過(guò)程中
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1