編譯時多態 與 運行時多態


在了解什么是編譯時多態 與 運行時多態前,我們先了解下什么是多態


多態

 多態指同一個實體同時具有多種形式。它是面向對象程序設計(OOP)的一個重要特征。如果一個語言只支持類而不支持多態,只能說明它是基於對象的,而不面向對象的。
 多態:同一操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。

多態的作用:
  把不同的子類對象都當做父類來看,可以屏蔽不同子類對象之間的差異,抽象出一個通用的邏輯關系,以此來適應不同的業務需求。


編譯時多態 與 運行時多態

  多態分為兩種情況:編譯時多態與運行時多態。編譯時多態:即在編譯時就能夠確定調用哪個方法。而運行時多態則相反,只有在運行時才能確定調用哪個方法。
  下面我們來介紹下,編譯時多態 和 運行時多態在重載 和 重寫上的區別。

  • 在方法重載時,都是編譯時多態。在編譯期可根據參數的數據類型、個數以及次序來確定調用方法
  • 在方法重寫中,當子類對象引用自身類實例方法時,為編譯時多態。但是當父類對象引用子類實例方法時(也就是上轉型對象時,父類聲明,子類實例化),為運行時多態,因為此時只有在運行時才可以去匹配到對應方法進行調用。

參考鏈接:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM