Anbefalet, 2024

Redaktørens Valg

Forskel mellem metodeoverbelastning og overstyring

Metode Overbelastning
Metodeoverbelastning, også kendt som Function Overloading eller Compile Time Polymorphism, er et begreb om at have to eller flere metoder med samme navn men forskellig signatur i samme omfang. Der er mange programmeringssprog, der understøtter denne funktion: Ada, C ++, C #, D og Java.

Eksempel på metodeoverbelastning i C #

klasse OverloadShapes {float polygon (int radius, float pi) {float circleArea = pi * radius * radius; } int Polygon (int længde, int bredde) {int rektangelArea = længde * bredde; } int Polygon (int side) {int squareArea = side * side; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14klasse OverloadShapes {float polygon (int radius, float pi) {float circleArea = pi * radius * radius; } int Polygon (int længde, int bredde) {int rektangelArea = længde * bredde; } int Polygon (int side) {int squareArea = side * side; }}

Som vist i ovenstående eksempel overlades metoden 'Polygon' 3 gange med forskellig metode signatur, dvs. typen eller antallet af parametre er forskellige.

Metode Overstyring
Metode overordnet, også kendt som funktionstider eller Run-time-polymorfisme, er en OOP-funktion, der gør det muligt for en børneklasse at give sin egen implementering til den metode, der er defineret i forældersklassen. Gennemførelsen i barneklassen tilsidesætter definitionen af ​​metoden i basisklassen, forudsat at metoden i barneklassen skal have samme navn, signatur og returtype.

Eksempel på Metode Overstyring i C #

klasse Source1 {public void draw () {Console.Writeline ("Jeg er i klassen Source1"); }} klasse Source2 udvider Source1 {public void draw () {Console.Writeline ("Jeg er i klassen Source2"); }}
1 2 3 4 5 6 7 8 9 10klasse Source1 {public void draw () {Console. Writeline ("Jeg er i klassen Source1"); }} klasse Source2 udvider Source1 {public void draw () {Console. Writeline ("Jeg er i klassen Source2"); }}

Her overtræk tegnemetoden i Source2-klassen tegnemetoden, der er defineret i Source1-klassen.

Forskel mellem overbelastning af metode og overstyring af metode

  1. I Metode overbelastning metoder skal have en anden signatur. I metode skal overordnede metoder have samme signatur.
  2. Funktion Overloading er at "tilføje" eller "udvide" mere til metodeets adfærd. Funktion overordnet er at helt "ændre" eller "omdefinere" en fremgangsmådes adfærd.
  3. Metode overbelastning bruges til at opnå kompileringstid polymorfisme; Metodeoverstyring bruges til at opnå run-time polymorfisme.
  4. I metode / funktion overbelastning kender kompilatoren hvilken objekt der er tildelt til hvilken klasse på tidspunktet for kompilering, men i metode overstyring er disse oplysninger ikke kendt indtil runtime.
  5. Funktion Overbelastning foregår i samme klasse, mens Overriding finder sted i en klasse afledt af en baseklasse.
Top