The ključna razlika med preglasovanjem in preobremenitvijo v C # je to vezava preklicanega klica metode na njeno definicijo se zgodi med izvajanjem, medtem ko se vezava preobremenjenega klica metode na njeno definicijo zgodi v času prevajanja.
C # je programski jezik splošne namene, ki ga je razvil Microsoft. Glavna prednost C # je, da podpira objektno orientirano programiranje (OOP). Eden stebrov OOP je polimorfizem. Predmetu daje več vedenj. V polimorfizmu obstajata dve vrsti, znana kot preobremenjenost in preobremenjenost. Ta članek obravnava razliko med preglasitvijo in preobremenitvijo metode v C #.
1. Pregled in ključne razlike
2. Kaj je prevladujoče v C #
3. Kaj je preobremenitev v C #
4. Podobnosti med preglasitvijo in preobremenitvijo v C #
5. Primerjava drug ob drugem - Prevlado nad preobremenitvijo v C # v tabeli
6. Povzetek
Še en pomemben koncept OOP je dedovanje. To je uporaba atributov in metod že obstoječega razreda. Izboljša ponovno uporabo kode. Že obstoječi razred je osnovni razred, novi razred pa je znan kot izpeljani razred. Pri prevladovanju polimorfizma bi morali obstajati osnovni razred in izpeljani razred. Vezava prepisanega klica metode na definicijo se zgodi med izvajanjem. Primer je naslednji.
Slika 01: Program C # s preglasitvijo
Glede na zgornji program je razred Shape osnovni razred in vsebuje metodo prikaza. Razred Pravokotnik in Trikotnik sta izvedena razreda. Ti izvedeni razredi imajo tudi enak prikaz zaslona z lastnimi izvedbami.
Najprej se ustvari referenčna spremenljivka obj. Nakazuje na predmet Oblika. Torej se bo izvedel način prikaza razreda Shape. Nato referenčna spremenljivka kaže na objekt Rectangle. Torej se bo izvedla metoda prikaza razreda Rectangle. Končno referenčna spremenljivka kaže na objekt Trikotnik. Torej se bo prikazala metoda prikaza razreda Trikotnik. Metodo prikaza osnovnega razreda nadomeščajo metode prikaza izpeljanih razredov.
Za način izvajanja se odloči med izvajanjem. Razred Shape je napisan s ključno besedo 'virtual'. Razreda Pravokotnik in Trikotnik sta napisana s ključno besedo "preglasi". Če se te ključne besede ne uporabljajo, bo izhod natisnil vsebino prikazanega načina razreda Oblika za vse.
Pri preobremenitvi ima več metod isto ime, vendar z različnimi parametri. Parametri so lahko različnih vrst. Metode imajo lahko tudi različno število parametrov. Preobremenitev metode se zgodi v istem razredu. Vezava preobremenjenih metod na definicijo se zgodi v času prevajanja. Glejte spodnji program C #.
Slika 02: Program C # s preobremenitvijo
Glede na zgornji program ima razred A dve metodi z istim imenom, imenovani sum. Imajo različne vrste parametrov. V glavnem programu se ustvari objekt A. Vsota (2,3) bo privzela metodo vsote s celi številki. Vsota (5.1, 7.94) bo z dvojnimi vrednostmi sprožila metodo vsote. Obe metodi imata isto ime in isto število parametrov. Toda vrste parametrov so različne. Zahtevana metoda se imenuje ustrezno. Do preobremenitve lahko pride tudi, če so imena metod in tipi parametrov enaki, število parametrov pa je drugačno.
Prevlado nad preobremenitvijo v C # | |
Preglasitev v C # je zagotovitev posebne izvedbe v izpeljani metodi razreda za metodo, ki že obstaja v osnovnem razredu. | Preobremenitev v C # je ustvariti več metod z istim imenom z različnimi izvedbami. |
Parametri | |
V C # Overriding imajo metode isto ime, iste vrste parametrov in isto število parametrov. | V C # Overloading imajo metode isto ime, vendar različno število parametrov ali drugačno vrsto parametrov. |
Pojav | |
V C # se preglasitev zgodi znotraj osnovnega in izpeljanega razreda. | V C # pride do preobremenitve znotraj istega razreda. |
Čas vezave | |
Vezava prepisanega klica na njeno definicijo se zgodi med izvajanjem. | Vezava klica preobremenjene metode na njeno definicijo se zgodi v času prevajanja. |
Sinonimi | |
Preglasitev se imenuje kot polimorfizem izvajanja, dinamični polimorfizem ali pozna vezava. | Preobremenitev se imenuje kot sestaviti časovni polimorfizem, statični polimorfizem ali zgodnja vezava. |
Preveliko in preobremenjenost sta dve vrsti polimorfizma. Razlika med preglasitvijo in preobremenitvijo v C # je v tem, da se vezava prepisanega klica metode na njeno definicijo zgodi med izvajanjem, medtem ko se vezava preobremenjenega klica metode na njeno definicijo zgodi v času prevajanja.
1.Kumar, Mukesh. C # kotiček. Na voljo tukaj
2.tutorialspoint.com. "Polimorfizem C #." VadnicePoint. Na voljo tukaj
3.tutorialspoint.com. "Vrste podatkov C #." VadnicePoint, na voljo tukaj