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

正文內(nèi)容

java多形性ppt課件(參考版)

2024-10-22 04:52本頁面
  

【正文】 在運(yùn)行期間對(duì)類型進(jìn)行檢查的行為叫作 “ 運(yùn)行期類型標(biāo)識(shí) ” ( runtime type identification RTTI)。 ?在 Java中,所有造型都會(huì)自動(dòng)得到檢查和核實(shí)!所以即使只是進(jìn)行一次普通的括弧造型,進(jìn)入運(yùn)行期以后,仍然會(huì)毫無留情地對(duì)這個(gè)造型進(jìn)行檢查,保證它的確是我們所希望的那種類型。只有這樣,才不會(huì)冒然造型成一種錯(cuò)誤的類型,然后發(fā)出一條對(duì)象不可能收到的消息。但在進(jìn)行下溯造型的時(shí)候,并不真的知道一個(gè)幾何形狀實(shí)際是一個(gè)圓,它完全可能是一個(gè)三角形、方形或者其他形狀。然而,我們知道上溯造型肯定是安全的;基礎(chǔ)類不可能再擁有一個(gè)比衍生類更大的接口。但在許多情況下,都需要重新核實(shí)對(duì)象的準(zhǔn)確類型,使自己能訪問那個(gè)類型的擴(kuò)展方法。如下所示: 61 :純繼承與擴(kuò)展 ?盡管這是一種有用和明智的做法(由具體的環(huán)境決定),但它也有一個(gè)缺點(diǎn):衍生類中對(duì)接口擴(kuò)展的那一部分不可在基礎(chǔ)類中使用。 60 :純繼承與擴(kuò)展 ?經(jīng)過細(xì)致的研究,我們發(fā)現(xiàn)擴(kuò)展接口對(duì)于一些特定問題來說是特別有效的方案。 ?若按這種思路考慮問題,那么一個(gè)純粹的 “ 屬于 ” 關(guān)系似乎是唯一明智的設(shè)計(jì)方法,其他任何設(shè)計(jì)方法都會(huì)導(dǎo)致混亂不清的思路,而且在定義上存在很大的困難。我們要做的全部事情就是從衍生上溯造型,而且永遠(yuǎn)不需要回過頭來檢查對(duì)象的準(zhǔn)確類型是什么。使用它們的時(shí)候,根本沒必要知道與子類有關(guān)的任何額外信息。如果按上述示意圖操作,衍生出來的類除了基礎(chǔ)類的接口之外,也不會(huì)再擁有其他什么。也就是說,只有在基礎(chǔ)類或“ 接口 ” 中已建立的方法才可在衍生類中被覆蓋,如下面這張圖所示: 58 :純繼承與擴(kuò)展 ?可將其描述成一種純粹的 “ 屬于 ” 關(guān)系,因?yàn)橐粋€(gè)類的接口已規(guī)定了它到底 “ 是什么 ” 或者 “ 屬于什么 ” 。同時(shí),合成顯得更加靈活,因?yàn)榭梢詣?dòng)態(tài)選擇一種類型,而繼承要求在編譯期間準(zhǔn)確地知道一種類型。 ?一個(gè)更好的思路是首先選擇 “ 合成 ” —— 如果不能十分確定自己應(yīng)使用哪一個(gè)。但假如過度使用繼承技術(shù),也會(huì)使自己的設(shè)計(jì)變得不必要地復(fù)雜起來。 (4) 調(diào)用衍生類構(gòu)建器的主體。 (2) 就象前面敘述的那樣,調(diào)用基礎(chǔ)類構(gòu)建器。 通過觀察下面這個(gè)例子 : 55 :構(gòu)建器內(nèi)部的多形性 ?前面講的初始化順序并不十分完整,而那是解決問題的關(guān)鍵所在。它調(diào)用位于衍生類里的一個(gè)方法。在任何構(gòu)建器內(nèi)部,整個(gè)對(duì)象可能只是得到部分組織—— 只知道基礎(chǔ)類對(duì)象已得到初始化,但卻不知道哪些類已經(jīng)繼承。否則,基礎(chǔ)類的初始化根本不會(huì)發(fā)生。但在進(jìn)行初始化的時(shí)候,必須覆蓋衍生類中的 finalize()方法 —— 如果已經(jīng)設(shè)計(jì)了某個(gè)特殊的清除進(jìn)程,要求它必須作為垃圾收集的一部分進(jìn)行。 ?看看一個(gè)例子,它展示了按構(gòu)建順序進(jìn)行合成、繼承以及多形性的效果: 53 :繼承和 finalize() ?通過 “ 合成 ” 方法創(chuàng)建新類時(shí),永遠(yuǎn)不必?fù)?dān)心對(duì)那個(gè)類的成員對(duì)象的收尾工作。 (2) 按聲明順序調(diào)用成員初始化模塊。這個(gè)步驟會(huì)不斷重復(fù)下去,首先得到構(gòu)建的是分級(jí)結(jié)構(gòu)的根部,然后是下一個(gè)衍生類,等等。由于它是 Java的標(biāo)準(zhǔn)命名機(jī)制,所以產(chǎn)生的文件會(huì)自動(dòng)具備 “ 與平臺(tái)無關(guān) ” 的能力。若內(nèi)部類嵌套于其他內(nèi)部類中,則它們的名字簡單地追加在一個(gè) $以及外部類標(biāo)識(shí)符的后面。這些文件或類的名字遵守一種嚴(yán)格的形式:先是封裝類的名字,再跟隨一個(gè) $,再跟隨內(nèi)部類的名字。所以當(dāng) g()調(diào)用()的時(shí)候,就會(huì)使用 f()被覆蓋版本。然而,仍然有可能 “ 明確 ” 地從內(nèi)部類繼承: 現(xiàn)在, , 而且覆蓋了它的方法。但實(shí)際情況并非如此。 48 :內(nèi)部類可以覆蓋嗎? ?若創(chuàng)建一個(gè)內(nèi)部類,然后從封裝類繼承,并重新定義內(nèi)部類,那么會(huì)出現(xiàn)什么情況呢?也就是說,有可能覆蓋一個(gè)內(nèi)部類嗎?這看起來似乎是一個(gè)非常有用的概念,但 “ 覆蓋 ” 一個(gè)內(nèi)部類 —— 好象它是外部類的另一個(gè)方法 —— 這一概念實(shí)際不能做任何事情: 默認(rèn)構(gòu)建器是由編譯器自動(dòng)合成的,而且會(huì)調(diào)用基礎(chǔ)類的默認(rèn)構(gòu)建器。此外,必須在構(gòu)建器中采用下述語法: ()。解決這個(gè)問題的辦法是采用一種特殊的語法,明確建立這種關(guān)聯(lián): InheritInner只對(duì)內(nèi)部類進(jìn)行了擴(kuò)展,沒有擴(kuò)展外部類。 47 :從內(nèi)部類繼承 ?由于內(nèi)部類構(gòu)建器必須同封裝類對(duì)象的一個(gè)句柄聯(lián)系到一起,所以從一個(gè)內(nèi)部類繼承的時(shí)候,情況會(huì)稍微變得有些復(fù)雜。這是由于內(nèi)部類的對(duì)象已同創(chuàng)建它的外部類的對(duì)象 “默默 ” 地連接到一起。 此時(shí),必須利用外部類的一個(gè)對(duì)象生成內(nèi)部類的一個(gè)對(duì)象: c = Contents()。 ? 有些時(shí)候,想告訴其他某些對(duì)象創(chuàng)建它某個(gè)內(nèi)部類的一個(gè)對(duì)象。舉例來說,在 ,它的所有方法都能產(chǎn)生外部類 Sequence的存儲(chǔ)句柄,方法是采用??蓪⑦@個(gè)類用于測試,但不需在自己的最終發(fā)行版本中包含它。若不愿如此,可考慮用一個(gè) static內(nèi)部類容納自己的測試代碼。由于類是 “ 靜態(tài) ” 的,所以它不會(huì)違反接口的規(guī)則 —— static內(nèi)部類只位于接口的命名空間內(nèi)部: 在每個(gè)類里都設(shè)置一個(gè) main(), 將其作為那個(gè)類的測試床使用。 如下所示: 在 main()中,不需要 Parcel10的對(duì)象;相反,可用常規(guī)的語法來選擇一個(gè) static成員,以便調(diào)用將句柄返回Contents和 Destination的方法。 44 : static內(nèi)部 ?倘若為了創(chuàng)建內(nèi)部類的對(duì)象而不需要?jiǎng)?chuàng)建外部類的一個(gè)對(duì)象,那么可將所有東西都設(shè)為 static。 (2) 不能從 static內(nèi)部類的一個(gè)對(duì)象中訪問一個(gè)外部類對(duì)象。然而,假如一個(gè)內(nèi)部類是 static的,這種說法卻是不成立的。進(jìn)行所有這些操作的時(shí)候,大多數(shù)時(shí)候都不要求程序員的任何介入。在這個(gè)創(chuàng)建過程中,要求對(duì)封裝類對(duì)象的句柄進(jìn)行初始化。而且,編譯器會(huì)照管所有這些細(xì)節(jié)。這是如何實(shí)現(xiàn)的呢?內(nèi)部類必須擁有對(duì)封裝類的特定對(duì)象的一個(gè)引用,而封裝類的作用就是創(chuàng)建這個(gè)內(nèi)部類。這一特征是非常方便的,就象在上面的例子中看到的那樣。 o是個(gè)不屬于 SSelector一部分的句柄,而是位于封裝類里的一個(gè) private字段。但不要被表面現(xiàn)象迷惑。除此以外,內(nèi)部類擁有對(duì)封裝類所有元素的訪問權(quán)限。 41 :鏈接到外部類 ?創(chuàng)建自己的內(nèi)部類時(shí),那個(gè)類的對(duì)象同時(shí)擁有指向封裝對(duì)象(這些對(duì)象封裝或生成了內(nèi)部類)的一個(gè)鏈接。所以實(shí)際上,一個(gè)實(shí)例初始化模塊就是一個(gè)匿
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1