多型就是指程式中定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即乙個引用變數倒底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在由程式執行期間才能決定。因為在程式執行時才確定具體的類,這樣,不用修改源程式**,就可以讓引用變數繫結到各種不同的類實現上,從而導致該引用呼叫的具體方法隨之改變,即不修改程式**就可以改變程式執行時所繫結的具體**,讓程式可以選擇多個執行狀態,這就是多型性 一.
多型存在的三個必要條件(多型的前提是繼承)
1.1、要有繼承;
1.2、要有重寫;
1.3、父類引用指向子類物件。
二.實現形式
3.1基於繼承實現的多型
基於繼承的實現機制主要表現在父類和繼承該父類的乙個或多個子類對某些方法的重寫,多個子類對同一方法的重寫可以表現出不同的行為。
3.2基於介面實現的多型
繼承是通過重寫父類的同一方法的幾個不同子類來體現的,那麼就可就是通過實現介面並覆蓋介面中同一方法的幾不同的類體現的。
在介面的多型中,指向介面的引用必須是指定這實現了該介面的乙個類的例項程式,在執行時,根據物件引用的實際型別來執行對應的方法。
繼承都是單繼承,只能為一組相關的類提供一致的服務介面。但是介面可以是多繼承多實現,它能夠利用一組相關或者不相關的介面進行組合與擴充,能夠對外提供一致的服務介面。所以它相對於繼承來說有更好的靈活性
三.舉例說明多型
animal->cat 和dog ->都有call()方法,不同的物件將執行不同的方法
python多型的理解 解釋多型性
你得到的答案是好的,並解釋什麼是多型性。我認為這也有助於理解它有用的一些原因。在某些缺乏多型性的語言中,您會發現自己處於這樣一種情況 您希望對不同型別的物件執行概念上相同的操作,而在這種情況下,必須為每種型別實現不同的操作。例如,在類似python的語法中 def dosomething thing...
php多型權威解釋
php核心 實踐學習 第一章 直接回答php多型 php作為一種指令碼語言,自身就是多型的,在語言的級別不談php的多型!有多型,是多型 php實現多型的兩個例子 class employee class teacher extends employee class coder extends em...
如何解釋C 中的多型
靜態 編譯時期 的多型 1.函式過載 2.模板 函式模板 類模板 動態 執行時期 的多型 定義 在繼承結構中,基類指標 引用指向派生類物件,再通過該指標呼叫同名覆蓋方法 虛函式 基類指標指向哪個派生類物件就會呼叫哪個派生類物件的同名覆蓋方法,稱為 多型 多型底層通過動態繫結實現。通過解引用訪問到派生...