Forskel mellem metodeoverbelastning og overstyring

Metode Overbelastning

Metodeoverbelastning, også kendt som Funktionoverbelastning eller Compile time polymorfisme, er et koncept med at have to eller flere metoder med samme navn, men forskellige signaturer i samme omfang. Der er mange programmeringssprog, der understøtter denne funktion: Ada, C ++, C #, D og Java.

Eksempel på metodeoverbelastning i C #
Som vist i ovenstående eksempel overbelastes metoden 'Polygon' 3 gange med forskellige metodesignaturer, dvs. typen eller antallet af parametre er forskellige.

Metodeoverskridelse

Fremgangsmådeoverskridende, også kendt som Funktionsoverskridende eller polymorfisme af køretid, er en OOP-funktion, der tillader en barneklasse at give sin egen implementering af den metode, der er defineret i forældreklassen. Implementeringen i barneklassen tilsidesætter definitionen af ​​metoden i baseklassen, forudsat at metoden i barneklassen skal have samme navn, underskrift og returtype.

Eksempel på metodeoverskridelse i C #
Her tilsidesætter tegningsmetoden i klassen Source2 tegningsmetoden, der er defineret i klassen Source1.

Forskel mellem metodeoverbelastning og metodeoverskridelse

  1. I metoderne skal overbelastningsmetoder have en anden signatur. I metode skal overstyrende metoder have den samme signatur.
  2. Funktion Overbelastning er at "tilføje" eller "udvide" mere til metodens opførsel. Funktionsoverskridende er at "ændre" eller "omdefinere" opførslen af ​​en metode fuldstændigt.
  3. Metodeoverbelastning bruges til at opnå kompileringstidspolymorfisme; metodeoverskridelse bruges til at opnå polymorfisme i løbet af tiden.
  4. I metode / funktion overbelastningskompilator ved, hvilket objekt der er tildelt til hvilken klasse på kompileringstidspunktet, men ved metodeoverskridelse er denne information ikke kendt før kørselstid.
  5. Funktion Overbelastning finder sted i samme klasse, hvorimod overstyring finder sted i en klasse, der stammer fra en baseklasse.
DET