壓倒一切(overriding)和超載(overloading)的區別

方法重寫和方法過載是一些程式語言中的兩個概念/技術/特性。這兩個概念都允許程式設計師為同名的方法提供不同的實現。方法重寫允許程式設計師在子類中為已經在其超類中定義的方法提供另一種實現。方法過載允許程式設計師為具有相同名稱(在同一個類中)的多個方法提供不同的實現。...

重寫vs重載

方法重寫和方法重載是一些編程語言中的兩個概念/技術/特性。這兩個概念都允許程序員為同名的方法提供不同的實現。方法重寫允許程序員在子類中為已經在其超類中定義的方法提供另一種實現。方法重載允許程序員為具有相同名稱(在同一個類中)的多個方法提供不同的實現。

什麼是壓倒性的?

如上所述,在面向對象編程語言中,類可以擴展超級類或父類。子類可以有自己的方法,也可以選擇對父類(或其一個父類)中已定義的方法有自己的實現。因此,當後者發生時,稱為方法重寫。換句話說,如果子類提供了一個方法的實現,該方法的簽名和返回類型與父類中已定義的方法相同,則該方法將被子類的實現覆蓋(替換)。因此,如果類中存在重寫的方法,運行時系統將必須決定使用哪個方法實現。通過查看用於調用它的對象的確切類型,可以解決此問題。如果父類的對象用於調用重寫的方法,則使用父類中的實現。類似地,如果它是使用的子類的對象,則使用子類的實現。現代編程語言如java、Eifell、C++和Python允許方法覆蓋。

什麼是超載?

方法重載是一些編程語言提供的一種功能,用於創建多個具有相同名稱但具有不同輸入和輸出類型的方法。在現代編程語言中,如java、C++、C++和VB.NET版,此功能可用。可以通過創建另一個名稱相同但方法簽名不同或返回類型不同(或兩者都有)的方法重載方法。例如,如果method1(type1t1)和method1(type2t2)在同一個類中,那麼它們將重載。然後系統將必須決定在調用它時要執行哪一個。這種區別是通過查看傳遞給方法的參數類型來實現的。如果參數是類型1,則調用第一個實現;如果參數是類型2,則調用第二個實現。

重寫和重載之間有什麼區別?

雖然方法重寫和方法重載用於提供具有不同實現的方法,但這兩個概念/技術之間存在關鍵區別。首先,方法重寫的主題始終位於不同的類中,而方法重載的主題則位於同一個類中。這意味著重寫只能在允許繼承的面向對象編程語言中實現,而重載也可以在非面嚮對象語言中使用。換句話說,您重寫了超類中的方法,但在自己的類中重載了方法。

  • 發表於 2020-11-04 08:57
  • 閱讀 ( 21 )
  • 分類:科技

你可能感興趣的文章

半導體(semiconductor)和超導體(superconductor)的區別

半導體和超導體的關鍵區別在於,半導體的導電率介於導體和絕緣體之間,而超導體的導電率高於導體的導電率。 一種允許電流透過的導體。半導體和超導體是兩種型別的電導體。根據它們的導電性,它們彼此不同。 目錄 1....

  • 發佈於 2020-09-24 11:42
  • 閲讀 ( 57 )

切片機(microtome)和超切術(ultramicrotomy)的區別

切片機和超切術的關鍵區別在於切片機上的薄片可以用光學顯微鏡或電子顯微鏡觀察,而極薄的切片則可以用電子顯微鏡觀察。 標本製備是顯微技術中的一項重要技術。顯微鏡下組織的製備主要是透過切割非常薄的薄片來完...

  • 發佈於 2020-10-16 17:56
  • 閲讀 ( 48 )

拒絕(denial)和壓制(repression)的區別

...們關注為什麼人們否認事物,答案主要是因為現實的苦澀壓倒了個人接受它作為真理。當一個人面對一種無法應對現實或真相的情況時,一種防禦機制就會發揮作用。它起到了保護作用,防止人受傷或緊張。然而,從長遠來看,...

  • 發佈於 2020-10-17 15:15
  • 閲讀 ( 57 )

心電圖(ekg)和超聲心動圖(echocardiogram)的區別

心電圖和超聲心動圖的主要區別在於心電圖(心電圖)測量心臟的電活動,而超聲心動圖則用超聲波拍照來顯示心臟的內部結構和流經心臟的血流。 心電圖(EKG)和超聲心動圖(echo)是兩種非常重要的測試,用於確定心臟的...

  • 發佈於 2020-10-17 17:18
  • 閲讀 ( 50 )

壓倒一切(overriding)和c中的過載#(overloading in c#)的區別

...將全部列印Shape類的顯示方法的內容。 什麼是c中的過載#(overloading in c#)? 在過載中,多個方法具有相同的名稱,但具有不同的引數。引數可以是不同型別的。這些方法也可以有不同數量的引數。方法過載發生在同一個類中。過...

  • 發佈於 2020-10-18 23:50
  • 閲讀 ( 65 )

多型性(polymorphism)和oop中的繼承(inheritance in oop)的區別

...時,稱為過載。它也被稱為靜態繫結或編譯時多型性。 壓倒一切 另一種多型性是重寫的。參考下面用Java編寫的程式。 圖02:覆蓋 根據上面的程式,在類a中有一個方法display(),類B是從類a擴充套件而來的,因此類a中的所有方...

  • 發佈於 2020-10-19 21:16
  • 閲讀 ( 69 )

超載(overloading)和在java中重寫(overriding in java)的區別

...表格形式在Java中過載與重寫 6. 摘要 什麼是java中的過載(overloading in java)? 過載是使用不同的實現建立同名的多個方法的能力。請參閱下面的Java程式碼。 圖01:Java程式,解釋使用不同數量的引數過載 根據上面的程式,類A包含兩...

  • 發佈於 2020-10-19 21:20
  • 閲讀 ( 55 )

亞臨界(subcritical)和超臨界鍋爐(supercritical boiler)的區別

亞臨界(subcritical)和超臨界鍋爐(supercritical boiler)的區別 鍋爐是一種封閉的容器,其中流體被加熱,大多數情況下,它是水。即使這是一個鍋爐的名字,流體不一定在這裡沸騰。加熱後的液體用於各種應用,包括水加熱、集中...

  • 發佈於 2020-10-24 03:17
  • 閲讀 ( 54 )

海波(hypo)和超級(hyper)的區別

-海波(- hypo)和超級(hyper)的區別 雖然兩個字首hypo和hyper的發音相似,但hypo和hyper在意思上有明顯的區別。事實上,它們有相反的含義。Hyper表示過度或超過正常值。相反,Hypo意味著低於正常水平或不足。這就是hypo和hyper的關鍵...

  • 發佈於 2020-10-28 07:22
  • 閲讀 ( 70 )

透析(dialysis)和超濾(ultrafiltration)的區別

透析和超濾的關鍵區別在於透析是一種人工的血液過濾過程,幫助患有腎功能衰竭的患者,而超濾是發生在腎臟中的自然血液過濾的三個步驟之一。 為了減少有害副產品透過代謝過程積聚在我們體內的威脅,我們的排洩系統...

  • 發佈於 2020-11-02 03:56
  • 閲讀 ( 53 )
k1529147266
k1529147266

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦