多型的定義:指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。
實現多型的技術稱為:動態繫結(dynamic binding),是指在執行期間判斷所引用物件的實際型別,根據其實際的型別呼叫其相應的方法。
多型的作用:消除型別之間的耦合關係。
多型三個必要條件:1.要有繼承 2.要有重寫 3.父類的引用指向子類的物件
多型的好處:
1.可替換性(substitutability)。多型對已存在**具有可替換性。例如,多型對圓circle類工作,對其他任何圓形幾何體,如圓環,也同樣工作。
2.可擴充性(extensibility)。多型對**具有可擴充性。增加新的子類不影響已存在類的多型性、繼承性,以及其他特性的執行和操作。實際上新加子類更容易獲得多型功能。例如,在實現了圓錐、半圓錐以及半球體的多型基礎上,很容易增添球體類的多型性。
3.介面性(inte***ce-ability)。多型是超類通過方法簽名,向子類提供了乙個共同介面,由子類來完善或者覆蓋它而實現的。如圖8.3 所示。圖中超類shape規定了兩個實現多型的介面方法,computearea()以及computevolume()。子類,如circle和sphere為了實現多型,完善或者覆蓋這兩個介面方法。
4.靈活性(flexibility)。它在應用中體現了靈活多樣的操作,提高了使用效率。
5.簡化性(simplicity)。多型簡化對應用軟體的**編寫和修改過程,尤其在處理大量物件的運算和操作時,這個特點尤為突出和重要。
package cn.dfz.duotai;
public class solution
}public class son extends father
public void eat()
}public static void main(string args)
}
執行結果:名字:son
年齡:40
結論:多型三個必要條件都滿足時 father.getname()呼叫的是子類的getname(),father.age還是呼叫的父類的age,而fater.eat()不會通過編譯。
java三大特性之多型
多型 多型的概述 1 多型 事物的多種狀態,polymorphic 物件的多型性 同乙個物件,可能具有不同的名稱,同乙個物件,有不同的型別的引用指向它。本質 同乙個物體有不同的名稱和描述。型別的多型性 同乙個型別,可能具有不同的子類實現。同乙個型別引用,有不同的物件實現。本質 同乙個名字和描述,可以...
三大特性之 多型
乙個行為不同的物件產生出不同的形態這就是多型,多型也是實現 復用的方式那麼為什麼呢?為什麼多型也是 復用的產物呢,因為多型的第乙個前提就是繼承,必須建立在繼承的基礎之上,才有多型之談,也就是說這個不同的物件也是有前提的,就是在繼承的條件之下的不同的類物件,簡單來說就是子類和基類 多型的第乙個條件就是...
理解java的三大特性之多型
物件導向的三大特性 封裝 繼承 多型。封裝和繼承幾乎都是為多型而準備的。這是我們最後乙個概念,也是最重要的知識點。一 概念 多型的定義 指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。傳送訊息就是函式呼叫 實現多型的技術稱為 動態繫結 dynamic ...