1. 程式人生 > >第9章 多型和抽象

第9章 多型和抽象

這裡寫圖片描述

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

靜態多型: 使用過載實現

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

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

父類的範圍遠大於子類的範圍 子類的例項中,一定包含了完整的父類結構 向下轉型: 當從高精度資料型別向低精度資料型別轉換時,需要使用強制型別轉換符,這種型別轉換技術稱為向下轉型。 引用資料型別向下轉型是有風險的,不是一定就能轉型成功,如果轉型成功,必須滿足兩個條件 1.第一個,必須是父類的引用指向一個子類的實現 2.子類的引用指向相同類的例項型

instanceof關鍵字作用: 1.判斷某個物件,是否是某個型別的物件 2.規避掉在“強制向下轉型”過程中,可能會出現的轉型風險 繫結技術 1.靜態繫結 2.動態繫結 多型的應用 1.多型引數的傳遞 2.異構結合

抽象(abstract) 組成:抽象類可以 繼續編寫:成員變數、常量、方法行為、靜態常量(屬性或行為)、初始塊,甚至構造也可以。 構造器此時的作用:不是為了建立物件,是用於分配成員變數的儲存空間 抽象方法作用:規範子類的行為,強制性的要求子類必須重寫父類的方法實現 abstract在定義抽象方法的時候,最大的作用:用來規範子類的行為

抽象類

1.在抽象類中語法上,不一定必須要有抽象方法 2.如果一個類存在抽象方法,那麼那個類就是一個抽象類 3.當一個類的所有行為,都無法具體實現的時候,或者這個類已經失去了被 例項化的含義的時候,可以將一個類抽象為抽象類。

抽象類出來不能例項化,其他的都跟普通類一樣 物件抽象成類 類抽象成父類 抽象類不會區實現外部類的實現