国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

多態(tài)的三種表現形式 什么是多態(tài)?在C 中多態(tài)是如何實現的?

什么是多態(tài)?在C 中多態(tài)是如何實現的?C中的多態(tài)性(雖然多態(tài)性不是C特有的,但C有兩種多態(tài)性:靜態(tài)多態(tài)性和動態(tài)多態(tài)性(即靜態(tài)綁定和動態(tài)綁定)。靜態(tài)和動態(tài)的主要區(qū)別在于綁定是發(fā)生在編譯時還是運行時。編

什么是多態(tài)?在C 中多態(tài)是如何實現的?

C中的多態(tài)性(雖然多態(tài)性不是C特有的,但C有兩種多態(tài)性:靜態(tài)多態(tài)性和動態(tài)多態(tài)性(即靜態(tài)綁定和動態(tài)綁定)。靜態(tài)和動態(tài)的主要區(qū)別在于綁定是發(fā)生在編譯時還是運行時。編譯時發(fā)生的綁定是靜態(tài)綁定,即靜態(tài)多態(tài)性;運行時發(fā)生的綁定是動態(tài)綁定,即動態(tài)多態(tài)性。靜態(tài)多態(tài)性可以通過模板和函數重載來實現(C語言中的多態(tài)性主要是模板造成的)。這里有兩個例子:1)函數模板

多態(tài)分為編譯時多態(tài)和運行時多態(tài)。

1. 編譯時多態(tài)性,其實是方法重載,函數名相同,但簽名不一樣。值得注意的是,簽名不包括方法的返回值。換句話說,這兩個方法的函數名和輸入參數是相同的,但返回值不同。編譯器返回錯誤。

2. 運行時多態(tài)性實際上與繼承和接口實現有關。子類可以重寫父類的非最終、非靜態(tài)、非私有方法或實現接口方法。JVM如何知道要調用哪個子類實例的對應方法?這就是你問的問題。在Java中,對象在JVM中有描述元數據。對象頭存儲當前實例的類型信息。在調用時,JVM可以根據這個類型準確地找出要使用的子類方法。

什么是多態(tài)?java中如何實現多態(tài)?

多態(tài)性是java面向對象編程的一項功能,它允許不同的對象響應相同的消息(或函數)。更坦率地說,相同的消息可以根據不同的對象發(fā)送,并采取各種不同的行為方式。

例如:例如,按F1鍵,flash界面會彈出as 3的幫助文檔;word界面會彈出word幫助;windows界面會彈出windows幫助和支持。如果相同的事件發(fā)生在不同的對象上,它將產生不同的結果。

多態(tài)性用于消除類型之間的耦合關系。提高程序的可擴展性。例如,在編程中,只需按照父類的設計進行操作。不管它是什么樣的子類,在將來使用這個子類都是不舒服的。只需將其替換為另一個,這不會影響原始代碼。這樣,代碼維護就更容易了

C的多態(tài)實現方法主要包括函數重載(包括運算符函數)、模板和虛擬函數。其目的是用相同的函數名調用不同的函數體,以提高程序的可重用性和可擴展性。

函數重載和模板是靜態(tài)組合的,即函數調用的所有信息在編譯時確定。函數重載可以是類的成員函數和友元函數,也可以是類外的普通函數。實際參數的個數或“類型和順序”用于確定特定的調用,因此定義時,這些同名函數的形式參數或“類型和順序”的個數必須不同。

虛擬函數采用動態(tài)綁定方式,允許在運行時建立函數調用與函數體的連接,并根據對象類型調用相應的函數。虛函數必須是類的成員函數(非靜態(tài)成員函數)。它必須在基類中聲明,并在派生類中重新定義。此外,它的函數類型、函數名、參數個數和順序必須與基類中的函數原型完全相同。具體調用需要通過基類指針指向派生類對象來獲得運行時多態(tài)性,并根據指針指向的實際對象調用成員函數。

簡單列出使用虛擬函數的兩個注意事項。

1)運行時多態(tài)性只能通過通過基類指針訪問虛擬函數來獲得。直接使用派生類對象和點運算符也可以調用虛函數,但它沒有利用其多態(tài)性。

2)在派生類中重新定義虛函數時,如果其參數的個數、類型和順序與基類的虛函數原型不同,系統(tǒng)會將其作為普通函數重載進行靜態(tài)綁定,因此無論如何調用,都不會有運行多態(tài)性。