diferența cheie între suprasolicitare și supraîncărcare în C # este asta legarea apelului de metodă suprascrisă la definiția sa se întâmplă la timpul de execuție, în timp ce legarea apelului metodei supraîncărcate la definiția sa se întâmplă la momentul compilării.
C # este un limbaj de programare cu scop general dezvoltat de Microsoft. Principalul avantaj al C # este că susține programarea orientată pe obiecte (OOP). Un pilon al POR este polimorfismul. Ea dă un obiect de a avea mai multe comportamente. Există două tipuri de polimorfism cunoscut sub numele de supraordonare și supraîncărcare. Acest articol discută diferența dintre metoda de suprasolicitare și supraîncărcarea în C #.
1. Prezentare generală și diferență cheie
2. Ce este mai important în C #
3. Ce este supraîncărcarea în C #
4. Asemănări între depășirea și supraîncărcarea în C #
5. Comparație de la o parte la alta - Suprascrierea vs supraîncărcarea în C # în formă tabulară
6. rezumat
Există un alt concept important în PLO este moștenirea. Se utilizează atributele și metodele clasei deja existente. Îmbunătățește reutilizarea codului. Clasa deja existentă este clasa de bază, iar noua clasă este cunoscută ca clasă derivată. În depășirea polimorfismului, ar trebui să existe o clasă de bază și o clasă derivată. Legarea apelului metodei suprascrise la definiție are loc în timpul execuției. Un exemplu este după cum urmează.
Figura 01: Program C # cu excludere
În conformitate cu programul de mai sus, clasa Shape este clasa de bază și conține metoda de afișare. Clasa dreptunghiulară și triunghi sunt clase derivate. Aceste clase derivate au, de asemenea, aceeași afișare a metodei cu propriile implementări.
Mai întâi, variabila de referință obj este creată. Ea indică obiectul Shape. Deci, se va executa metoda de afișare a clasei Shape. Apoi, variabila de referință indică obiectul Rectangular. Deci, se va executa metoda de afișare a clasei Rectangle. În cele din urmă, variabila de referință indică obiectul Triunghi. Deci, se va executa metoda de afișare a clasei Triangle. Metoda de afișare a clasei de bază este înlocuită de metodele de afișare ale claselor derivate.
Metoda de rulare este stabilită în timpul rulării. Clasa Shape este scrisă cu un cuvânt cheie "virtual". Clasele dreptunghiului și triunghiului sunt scrise cu cuvântul cheie "suprascrie". Dacă aceste cuvinte cheie nu sunt utilizate, ieșirea va tipări conținutul metodei de afișare a clasei Shape pentru toți.
În suprasolicitare, mai multe metode au același nume, dar cu parametri diferiți. Parametrii pot fi de diferite tipuri. Metodele pot avea, de asemenea, un număr diferit de parametri. Supraîncărcarea metodelor are loc în aceeași clasă. Legarea metodelor supraîncărcate la definiție are loc la momentul compilării. Consultați programul de mai jos C #.
Figura 02: Programul C # cu supraîncărcare
Conform programului de mai sus, clasa A are două metode cu același nume numit sumă. Ele au diferite tipuri de parametri. În programul principal, este creat un obiect din A. Suma (2,3) va invoca metoda sumei cu numere întregi. Suma (5.1, 7.94) va invoca metoda sumei cu valori duble. Ambele metode au același nume și același număr de parametri. Dar tipurile de parametri sunt diferite. Metoda necesară este numită în consecință. Suprasolicitarea poate apărea, de asemenea, dacă numele metodelor și tipurile de parametri sunt identice, dar numărul de parametri este diferit.
Overriding vs supraîncărcarea în C # | |
Înlocuirea în C # este de a oferi o implementare specifică într-o metodă de clasă derivată pentru o metodă deja existentă în clasa de bază. | Suprasolicitarea în C # este de a crea mai multe metode cu același nume cu diferite implementări. |
Parametrii | |
În C # Overriding, metodele au același nume, aceleași tipuri de parametri și același număr de parametri. | În C # Overloading, metodele au același nume, dar un număr diferit de parametri sau un alt tip de parametri. |
Apariţie | |
În C #, suprascrierea are loc în clasa de bază și în clasa derivată. | În C #, supraîncărcarea are loc în aceeași clasă. |
Timpul de legare | |
Legarea apelului metodei suprascrise la definiția sa se întâmplă la timpul de execuție. | Legarea apelului metodei supraîncărcate la definiția sa se întâmplă la momentul compilării. |
Sinonime | |
Îndepărtarea este numită ca runtime polimorfism, polimorfismul dinamic sau legarea târzie. | Supraîncărcarea este denumită ca compilarea polimorfismului timpului, polimorfismul static sau legarea timpurie. |
Îndepărtarea și suprasarcina sunt două tipuri de polimorfism. Diferența dintre suprascrierea și supraîncărcarea în C # este că legarea apelului metodei suprascrise la definiția sa se întâmplă la timpul de execuție, în timp ce legarea apelului metodei supraîncărcate la definiția sa se întâmplă la momentul compilării.
1.Kumar, Mukesh. C # Corner. Disponibil aici
2.tutorialspoint.com. Polimorfismul C #. TutorialsPoinT. Disponibil aici
3.tutorialspoint.com. "Tipuri de date C #". TutorialsPoint , Disponibil aici