第9章 多型和抽象

2021-08-27 21:14:04 字數 1312 閱讀 3523

多型(polymorphism)

定義:相同的行為,不同的實現,使用動態繫結和重寫實現

靜態多型:

使用過載實現

動態多型:

轉型條件:只能發生在父子之間

轉型技術:向上轉型、向下轉型。

向上轉型:

定義:當從低精度資料型別向高精度資料型別轉換時實行自動轉換,這種型別轉換技術稱為向上轉型;或乙個父類的引用變數可以指向不同的子類物件,或者說乙個子物件可以被當作乙個父類型別。

父類的範圍遠大於子類的範圍

子類的例項中,一定包含了完整的父類結構

向下轉型:

當從高精度資料型別向低精度資料型別轉換時,需要使用強制型別轉換符,這種型別轉換技術稱為向下轉型。

引用資料型別向下轉型是有風險的,不是一定就能轉型成功,如果轉型成功,必須滿足兩個條件

1.第乙個,必須是父類的引用指向乙個子類的實現

2.子類的引用指向相同類的例項型

instanceof關鍵字作用:

1.判斷某個物件,是否是某個型別的物件

2.規避掉在「強制向下轉型」過程中,可能會出現的轉型風險

繫結技術

1.靜態繫結

2.動態繫結

多型的應用

1.多型引數的傳遞

2.異構結合

抽象(abstract)

組成:抽象類可以 繼續編寫:成員變數、常量、方法行為、靜態常量(屬性或行為)、初始塊,甚至構造也可以。

構造器此時的作用:不是為了建立物件,是用於分配成員變數的儲存空間

抽象方法作用:規範子類的行為,強制性的要求子類必須重寫父類的方法實現

abstract在定義抽象方法的時候,最大的作用:用來規範子類的行為

抽象類

1.在抽象類中語法上,不一定必須要有抽象方法

2.如果乙個類存在抽象方法,那麼那個類就是乙個抽象類

3.當乙個類的所有行為,都無法具體實現的時候,或者這個類已經失去了被 例項化的含義的時候,可以將乙個類抽象為抽象類。

抽象類出來不能例項化,其他的都跟普通類一樣

物件抽象成類

類抽象成父類

抽象類不會區實現外部類的實現

第9章 繼承和多型 程式設計練習 Exercise9

person,student,employee,faculty,staff類的設計 要求 父類person 其子類有student employee。employee類有子類 faculty和staff。person有姓名,位址,電子郵件,student有班級。將這些定義為常量 employee有辦...

第9章 硬體抽象層 HAL

撇開這些爭論,學習android硬體抽象層,對理解整個android整個系統,都是極其有用的,因為它從下到上涉及到了android系統的硬體驅動層 硬體抽象層 執行時庫和應用程式框架層等等,下面這個圖闡述了硬體抽象層在android系統中的位置,以及它和其它層的關係 android加入hal主要有如...

多型和抽象

多型就是指 相同的行為不同的實現 特指方法 理解多型 1.靜態多型 編譯期,系統就能決定呼叫哪個方法 通過過載實現 2.動態多型 執行期,系統才能確定動態方法所指的物件 使用動態繫結和重寫實現 注 多型中大量用到動態多型。多型的技術基礎 1.向上轉型技術 子轉父 用到動態繫結技術 執行時根據父類引用...