當前位置:編程學習大全網 - 編程語言 - 多態指的是什麽?

多態指的是什麽?

多態首先是建立在繼承的基礎上的,先有繼承才能有多態。多態是指不同的子類在繼承父類後分別都重寫覆蓋了父類的方法,即父類同壹個方法,在繼承的子類中表現出不同的形式。多態成立的另壹個條件是在創建子類時候必須使用父類new子類的方式。

多態(Polymorphism)按字面的意思就是“多種狀態”。在面向對象語言中,接口的多種不同的實現方式即為多態。引用Charlie Calverts對多態的描述——多態性是允許妳將父對象設置成為壹個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作(摘自“Delphi4?編程技術內幕”)。

簡單的說,就是壹句話:允許將子類類型的指針賦值給父類類型的指針。多態性在Object Pascal和C++中都是通過虛函數實現的。

多態指同壹個實體同時具有多種形式。它是面向對象程序設計(OOP)的壹個重要特征。如果壹個語言只支持類而不支持多態,只能說明它是基於對象的,而不是面向對象的。C++中的多態性具體體現在運行和編譯兩個方面。運行時多態是動態多態,其具體引用的對象在運行時才能確定。編譯時多態是靜態多態,在編譯時就可以確定對象使用的形式。

多態:同壹操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。

C++中,實現多態有以下方法:虛函數,抽象類,覆蓋,模板(重載和多態無關)。

OC中的多態:不同對象對同壹消息的不同響應.子類可以重寫父類的方法。

多態就是允許方法重名 參數或返回值可以是父類型傳入或返回。

多態也指生物學中腔腸動物的特殊的生活方式。水螅態與水母態的世代交替現象。

把不同的子類對象都當作父類來看,可以屏蔽不同子類對象之間的差異,寫出通用的代碼,做出通用的編程,以適應需求的不斷變化。

賦值之後,父類型的引用就可以根據當前賦值給它的子對象的特性以不同的方式運作。也就是說,父親的行為像兒子,而不是兒子的行為像父親。

使用繼承性的結果就是當創建了壹個類的家族,在認識這個類的家族時,就是把子類的對象當作基類的對象,這種認識又叫作upcasting(向上轉型)。這樣認識的重要性在於:我們可以只針對基類寫出壹段程序,但它可以適應於這個類的家族,因為編譯器會自動找出合適的對象來執行操作。這種現象又稱為多態性。而實現多態性的手段又叫稱動態綁定(dynamic binding)。

簡單的說,建立壹個父類對象的引用,它所指對象可以是這個父類的對象,也可以是它的子類的對象。java中當子類擁有和父類同樣的函數,當通過這個父類對象的引用調用這個函數的時候,調用到的是子類中的函數。

  • 上一篇:說說妳手機裏有哪些珍藏的寶藏App,分享出來?
  • 下一篇:從松原到伊犁河要多少錢?松原到伊犁河高速公路的路況。
  • copyright 2024編程學習大全網