1. 程式人生 > >學習java第十二和十三天

學習java第十二和十三天

這裡寫圖片描述 多型 多型又分為靜態多型和動態多型 靜態多型:在編譯期間就能決定由哪一個物件來呼叫哪一個行為。 動態多型:編譯期間不能決定由哪一個物件來呼叫哪一個行為。 靜態多型的實現:過載和重寫 動態多型的實現:使用動態繫結和重寫實現。

轉型技術 轉型條件:只能發生在父類和子類之間 向上轉型技術: 一個父類的引用變數可以指向不同的子類物件,或者說一個子物件可以被當作一個父類型別。(引用資料型別轉換隻能用在存在繼承關係的父類與子類之間)即由子類向父類轉型,這個編譯器會自動識別;能轉型成功,原因是:父類的範圍>>子類的範圍。為什麼父類能夠指向子類,因為子類例項中,一定擁有一個完整的父類的所有資料值。

向下強制轉型: 引用資料型別向下轉型是有風險的,不是說一定能夠轉型成功,如果需要轉型成功,那麼必須滿足兩個條件:1.必須是父類的引用指向一個子類的實現2.子類的引用最終必須指向相同型別的子類的實現。 結論:父類的引用可以指向子類的物件,子類的引用不能指向父類的物件。

Instanceof關鍵字:instanceof關鍵字用於判斷執行時物件的真正型別。 目的:用來規避掉在“強制向下轉型”過程中,可能會出現的轉換風險。

繫結技術 靜態: 程式執行之前方法就已經被繫結,也就是說編譯器能夠直接識別的繫結關係; java的方法只有final、static、private和構造器是前期繫結。 動態: 執行時根據父類的引用所指物件的時機型別執行相應的子類的方式,從而實現多型性。

多型應用:多型引數的傳遞、異構集合

抽象 範圍: 1.物件抽象成類 2.類抽象成父類 抽象類: 1.擁有抽象方法的類一定是抽象類; 2.但是抽象類身上,不一定擁有抽象方法; 3.當一個類的所有行為,都無法具體實現的時候,或者說這個類已經失去了被例項化的含義的時候,我們就可以將一個類抽象為抽象類。

抽象類的成員組成: 成員變數、方法行為、靜態屬性和行為、初始化塊、構造器(此時的構造器,它的作用並非是建立一個物件,而是為成員變數分配儲存空間)。 抽象方法: 作用:規範子類的行為,強制性要求子類必須重寫父類的方法實現,抽象類除了不能例項化以外,其他的都跟普通類沒有任何差別。