ključna razlika između preglasavanja i preopterećenja u C # je to vezanje nadjačanog poziva metode za njegovu definiciju događa se u vrijeme izvođenja, dok se vezanje preopterećenog poziva metode za njegovu definiciju događa u vrijeme sastavljanja.
C # je programski jezik opće namjene koji je razvio Microsoft. Glavna prednost C # je što podržava objektno orijentirano programiranje (OOP). Jedan stup OOP-a je polimorfizam. Objektu daje višestruko ponašanje. Postoje dvije vrste polimorfizma poznate kao prevladavanje i preopterećenje. Ovaj članak govori o razlici prevladavanja i preopterećenja metode u C #.
1. Pregled i ključne razlike
2. Što je presudno u C #
3. Što je preopterećenje u C #
4. Sličnosti između prevladavanja i preopterećenja u C #
5. Usporedna usporedba - prevladavanje nad preopterećenjem u C # u tabelarnom obliku
6. Sažetak
Postoji još jedan važan koncept OOP-a o nasljeđivanju. To je korištenje atributa i metoda već postojeće klase. Poboljšava ponovnu upotrebu koda. Već postojeća klasa je osnovna klasa, a nova klasa je poznata kao izvedena klasa. U prevladavanju polimorfizma, treba postojati osnovna klasa i izvedena klasa. Vezivanje poništenog poziva metode na definiciju događa se tijekom izvođenja. Primjer je sljedeći.
Slika 01: C # program s nadjačavanjem
Prema gornjem programu, klasa Shape je osnovna klasa, a ona sadrži metodu prikaza. Pravokutnik i trokut klase su izvedene klase. Ove izvedene klase također imaju isti način prikaza s vlastitim implementacijama.
Prvo se stvara referentna varijabla obj. Ukazuje na objekt Oblik. Dakle, metoda prikaza klase Shape će se izvršiti. Zatim referentna varijabla upućuje na objekt Rectangle. Dakle, prikazati će se metoda prikaza klase Rectangle. Konačno, referentna varijabla upućuje na objekt Trokut. Dakle, metoda prikaza trikutne klase će se izvršiti. Metoda prikaza osnovne klase nadjačava metode prikaza izvedenih klasa.
Način pokretanja odlučuje se tijekom vremena izvođenja. Klasa oblika napisana je s ključnom riječi "virtualna". Klase Pravokutnik i Trokut pišu se ključnom riječju 'override'. Ako se ove ključne riječi ne koriste, izlaz će ispisati sadržaj metode prikaza klase Shape za sve.
Kod preopterećenja više metoda ima isti naziv, ali s različitim parametrima. Parametri mogu biti različitih vrsta. Metode također mogu imati različit broj parametara. Preopterećenje metoda događa se u istoj klasi. Vezanje preopterećenih metoda za definiciju događa se u vrijeme sastavljanja. Pogledajte niži C # program.
Slika 02: C # program s preopterećenjem
Prema gornjem programu, klasa A ima dvije metode s istim nazivom zvane sum. Imaju različite vrste parametara. U glavnom programu se stvara objekt A. Zbroj (2,3) će pozvati metodu zbroja s cijelim brojevima. Zbrojem (5.1, 7.94) poziva se dvostruka vrijednost na metodu zbroja. Obje metode imaju isti naziv i isti broj parametara. Ali vrste parametara su različite. Potrebna metoda zove se prema tome. Do preopterećenja može doći i ako su nazivi metoda i vrste parametara isti, ali je broj parametara različit.
Prevladavajući nad preopterećenjem u C # | |
Prekoračenje u C # znači pružiti specifičnu implementaciju u izvedenoj metodi klase za metodu koja već postoji u osnovnoj klasi. | Preopterećenje u C # je stvaranje više metoda s istim nazivom s različitim implementacijama. |
parametri | |
U C # prevladavanju, metode imaju isti naziv, iste vrste parametara i isti broj parametara. | U C # Overloading, metode imaju isti naziv, ali različit broj parametara ili različitu vrstu parametara. |
događaj | |
U C #, prevladavanje se događa unutar osnovne klase i izvedene klase. | U C #, preopterećenje se događa unutar iste klase. |
Vrijeme vezanja | |
Vezivanje pozadine prepisane metode na njezinu definiciju događa se tijekom izvođenja. | Vezanje preopterećenog poziva za njegovu definiciju događa se u vrijeme sastavljanja. |
sinonimi | |
Prevladavanje naziva se kao vrijeme polimorfizma, dinamički polimorfizam ili kasno vezivanje. | Preopterećenje se naziva kao sastaviti vremenski polimorfizam, statički polimorfizam ili rano vezivanje. |
Prevladavanje i preopterećenje dvije su vrste polimorfizma. Razlika između prekomjernog i preopterećenog u C # je u tome što se vezanje nadjačanog poziva metode na njegovu definiciju događa u vrijeme izvođenja, dok se vezanje preopterećenog poziva za njegovu definiciju događa u vrijeme sastavljanja.
1.Kumar, Mukesh. C # kutak. Dostupno ovdje
2.tutorialspoint.com. "C # polimorfizam." TutorialsPoint. Dostupno ovdje
3.tutorialspoint.com. "Vrste podataka C #." TutorialsPoint, dostupno ovdje