關鍵的區別–在c中重寫與重載#
C中重寫和重載之間的關鍵區別在於,重寫方法調用對其定義的綁定發生在運行時,而重載的方法調用綁定到其定義發生在編譯時。
C是微軟開發的一種通用編程語言。C的主要優點是它支持面向對象編程(OOP)。OOP的一個支柱是多態性。它使一個對象具有多種行為。多態性有兩種類型,稱為重寫和重載。本文討論了C中方法重寫和重載之間的區別。
目錄
1. 概述和主要區別
2. 在C中重寫是什麼#
3. 什麼是C語言中的重載#
4. C中重寫和重載的相似性#
5. 並排比較-以表格形式在C中重寫與重載
6.摘要
什麼是在c中重寫#(overriding in c#)?
在OOP中還有一個重要的概念是繼承。它使用已經存在的類的屬性和方法。它提高了代碼的可重用性。已經存在的類是基類,新類稱為派生類。在重寫多態性時,應該有一個基類和一個派生類。重寫的方法調用與定義的綁定發生在運行時。一個例子如下。
根據上面的程序,類形狀是基類,它包含顯示方法。類Rectangle和Triangle是派生類。這些派生類在它們自己的實現中也有相同的方法顯示。
首先,創建引用變量obj。它指向形狀對象。因此,Shape類的display方法將被執行。然後,引用變量指向矩形對象。因此,將執行Rectangle類的display方法。最後,參考變量指向三角形對象。因此,將執行Triangle類的顯示方法。基類顯示方法被派生類的顯示方法重寫。
要運行的方法在運行時決定。Shape類是用“virtual”關鍵字編寫的。矩形和三角形類是用“override”關鍵字編寫的。如果不使用這些關鍵字,輸出將全部打印Shape類的顯示方法的內容。
什麼是c中的過載#(overloading in c#)?
在重載中,多個方法具有相同的名稱,但具有不同的參數。參數可以是不同類型的。這些方法也可以有不同數量的參數。方法重載發生在同一個類中。重載方法與定義的綁定發生在編譯時。參考以下C程序。
根據上面的程序,類A有兩個同名的方法sum。它們有不同類型的參數。在主程序中,創建了一個對象。sum(2,3)將使用整數調用sum方法。sum(5.1,7.94)將使用雙精度值調用sum方法。兩個方法具有相同的名稱和相同數量的參數。但參數類型不同。相應地調用所需的方法。如果方法名和參數類型相同但參數數目不同,也可能發生重載。
什麼是c語言中重寫與重載的相似性#(the similarity between overriding and overloading in c#)?
- C中的重寫和重載都是多態性的類型。
壓倒一切(overriding)和c中的過載#(overloading in c#)的區別
在C中重寫vs重載# | |
重寫是在派生類方法中為基類中已經存在的方法提供特定的實現。 | C中的重載是用不同的實現創建具有相同名稱的多個方法。 |
參數 | |
在C#重寫中,這些方法具有相同的名稱、相同的參數類型和相同數量的參數。 | 在C#重載中,方法具有相同的名稱,但參數數目不同,或者參數類型不同。 |
發生 | |
在C#中,重寫發生在基類和派生類中。 | 在C中,重載發生在同一個類中。 |
裝訂時間 | |
重寫的方法調用綁定到其定義發生在運行時。 | 重載方法調用對其定義的綁定發生在編譯時。 |
同義詞 | |
重寫稱為運行時多態性、動態多態性或後期綁定。 | 重載稱為編譯時多態性、靜態多態性或早期綁定。 |
總結 - 壓倒一切(overriding) vs. c中的過載#(overloading in c#)
重寫和重載是多態性的兩種類型。在C中重寫和重載的區別在於,被重寫方法調用對其定義的綁定發生在運行時,而重載方法調用對其定義的綁定發生在編譯時。