當前位置:首頁 » 編程軟體 » 重載是編譯時的多態性

重載是編譯時的多態性

發布時間: 2024-12-21 02:42:17

⑴ 方法重載和方法重構導致了多態 對不對

這是其中的一種多態;

在JAVA中有兩種多態是指:運行時多態和編譯時多態。

對於多個同名方法,如果在編譯時能夠確定執行同名方法中的哪一個,則稱為編譯時多態性.
如果在編譯時不能確定,只能在運行時才能確定執行多個同名方法中的哪一個,則稱為運行時多態性.

所以,一般情況下,重載指的是編譯時多態,重寫是運行時多態;因為重載是在編譯時就知道調用哪個方法;而如果是子類實例調用父類方法,那麼需要運行時才能知道調用什麼方法,故為運行時多態;

補充一下:不知道你寫的重構指的是重載還是調整代碼

⑵ C++支持兩種類型的多態性:_________、運行時多態

(1)編譯時的多態性
編譯時的多態性是通過重載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的參數、返回的類型等信息決定實現何種操作。
(2)運行時的多態性
運行時的多態性就是指直到系統運行時,才根據實際情況決定實現何種操作。C++中,運行時的多態性通過虛成員實現。

⑶ 什麼是靜態多態性它和重載有何不同

多態性的實現與靜態聯編、動態聯編有關。靜態聯編支持的多態性稱為編譯時的多態性,也稱靜態多態性,它是通過函數重載和運算符重載實現的。動態聯編支持的多態性稱為運行時的多態性,也稱動態多態性,它是通過繼承和虛函數實現的。

C++允許在參數類型不同的前提下重載函數。重載的函數與具有多態性的函數(即虛函數)不同處在於:調用正確的被重載函數實體是在編譯期間就被決定了的;而對於具有多態性的函數來說,是通過運行期間的動態綁定來調用我們想調用的那個函數實體。多態性是通過重定義(或重寫)這種方式達成的。請不要被重載(overloading)和重寫(overriding)所迷惑。重載是發生在兩個或者是更多的函數具有相同的名字的情況下。區分它們的辦法是通過檢測它們的參數個數或者類型來實現的。重載與CLOS中的多重分發(multiple dispatching)不同,對於參數的多重分發是在運行期間多態完成的。

⑷ 1. 編譯時的多態性與運行時的多態性有什麼區別,他們的實現方法有什麼不同

多態從實現的角度可以劃為兩類:編譯時多態和運行時多態。

編譯時的多態性:就是在程序編譯的時候,也就是生成解決方案的時候就決定要實現什麼操作。

運行時的多態性:就是指直到系統運行時,才根據實際情況決定實現何種操作。

1、多態實現形式不同:

編譯時的多態是通過靜態連編來實現的;運行時的多態是用動態連編來實現的。

2、多態性通過方式不同:

編譯時的多態性主要是通過函數重載和運算符重載來實現的;運行時的多態性主要是通過虛函數來實現的。

(4)重載是編譯時的多態性擴展閱讀:

靜態多態性又稱編譯時的多態性。靜態多態性的函數調用速度快、效率高但缺乏靈活性,在程序運行前就應決定執行的函數和方法。

動態多態性的特點是:不在編譯時確定調用的是哪個函數,而是在程序運行過程中才動態地確定操作所針對的對象。又稱運行時的多態性。動態多態性是通過虛函數(virtual function)實現的。

⑸ 重寫和重載的區別

這兩個詞語的區別在於定義、范圍、規則。
1、定義:重載是定義相同的方法名,參數不同;重寫是子類重寫父類的方法。
2、范圍:重載是在一個類中,是編譯時的多態性;重寫是子類與父類之間的,是運行時的多態性。
3、規則:重載對返回類型沒有要求,參數個數、參數類型、參數順序可以不同,訪問修飾符沒有特殊要求;重寫要求返回類型有兼容的返回類型,參數列表必須完全與被重寫的方法相同,訪問修飾符的限制一定要大於被重寫方法的訪問修飾符,重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

熱點內容
空間申請訪問許可權 發布:2024-12-21 06:14:47 瀏覽:646
什麼是計算安全密碼 發布:2024-12-21 06:14:37 瀏覽:668
安卓系統怎麼關閉通知 發布:2024-12-21 06:13:19 瀏覽:782
c語言allocate 發布:2024-12-21 06:01:59 瀏覽:730
怎麼清空資料庫數據 發布:2024-12-21 06:01:53 瀏覽:29
布魯可編程 發布:2024-12-21 06:01:19 瀏覽:109
酷狗上傳原創歌曲 發布:2024-12-21 06:01:10 瀏覽:961
linux查看日誌命令 發布:2024-12-21 05:54:51 瀏覽:258
高配置路由器有哪些 發布:2024-12-21 05:35:55 瀏覽:678
西安數字人民幣app安卓手機哪裡下 發布:2024-12-21 05:34:35 瀏覽:4