多型(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.向上轉型技術 子轉父 用到動態繫結技術 執行時根據父類引用...