Diferența Dintre Suprascriere și Supraîncărcare în C

Cuprins:

Diferența Dintre Suprascriere și Supraîncărcare în C
Diferența Dintre Suprascriere și Supraîncărcare în C

Video: Diferența Dintre Suprascriere și Supraîncărcare în C

Video: Diferența Dintre Suprascriere și Supraîncărcare în C
Video: Am descoperit supraîncărcarea și suprascrierea 2024, Decembrie
Anonim

Diferența cheie - suprascriere vs supraîncărcare în C #

Diferența cheie între suprascriere și supraîncărcare în C # este că legarea apelului de metodă suprascrisă la definiția sa are loc în timp de execuție, în timp ce legarea apelului de metodă supraîncărcată la definiția sa are loc la momentul compilării.

C # este un limbaj de programare de uz general dezvoltat de Microsoft. Principalul avantaj al C # este că acceptă programarea orientată pe obiecte (OOP). Un pilon al POO este polimorfismul. Oferă unui obiect să aibă comportamente multiple. Există două tipuri în polimorfism cunoscute sub numele de suprascriere și supraîncărcare. Acest articol discută diferența dintre suprascrierea metodei și supraîncărcarea în C #.

CUPRINS

1. Prezentare generală și Diferența esențială

2. Ce primează în C #

3. Ce este Supraîncărcarea în C #

4. Între precumpănitor și Similitudini Supraîncărcarea în C #

5. Side by Side Comparație - Imperative vs Supraîncărcarea în C # în tabulare Formular

6. Rezumat

Ce este suprascrierea în C #?

Există un alt concept important în PO este moștenirea. Este de a utiliza atribute și metode ale clasei deja existente. Îmbunătățește reutilizarea codului. Clasa deja existentă este clasa de bază, iar noua clasă este cunoscută sub numele de clasă derivată. În anularea polimorfismului, ar trebui să existe o clasă de bază și o clasă derivată. Legarea apelului de metodă suprascrisă la definiție are loc la runtime. Un exemplu este următorul.

Diferența dintre suprascriere și supraîncărcare în C #
Diferența dintre suprascriere și supraîncărcare în C #

Figura 01: Program C # cu suprascriere

Conform programului de mai sus, clasa Shape este clasa de bază și conține metoda de afișare. Clasa Rectangle și Triangle sunt clase derivate. Aceste clase derivate au, de asemenea, aceeași metodă de afișare cu propriile implementări.

În primul rând, se creează variabila de referință obj. Arată spre obiectul Shape. Deci, se va executa metoda de afișare a clasei Shape. Apoi, variabila de referință indică obiectul Rectangle. 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 suprascrisă de metodele de afișare ale claselor derivate.

Metoda de rulare este decisă în timpul rulării. Clasa Shape este scrisă cu un cuvânt cheie „virtual”. Clasele dreptunghi și triunghi sunt scrise cu cuvântul cheie „suprascrie”. Dacă aceste cuvinte cheie nu sunt utilizate, rezultatul va imprima conținutul metodei de afișare a clasei Shape pentru toți.

Ce este supraîncărcarea în C #?

În supraîncărcare, 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 metodei are loc în aceeași clasă. Legarea metodelor supraîncărcate la definiție are loc în momentul compilării. Consultați programul C # de mai jos.

Diferența cheie între suprascriere și supraîncărcare în C #
Diferența cheie între suprascriere și supraîncărcare în C #

Figura 02: Program C # cu supraîncărcare

Conform programului de mai sus, clasa A are două metode cu același nume numit sumă. Au diferite tipuri de parametri. În programul principal, se creează un obiect al lui 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 apelată în consecință. Suprasolicitarea poate apărea, de asemenea, dacă numele metodelor și tipurile de parametri sunt aceleași, dar numărul parametrilor este diferit.

Care este asemănarea dintre suprascriere și supraîncărcare în C #?

Atât suprascrierea, cât și supraîncărcarea în C # sunt tipuri de polimorfism

Care este diferența dintre suprascriere și supraîncărcare în C #?

Difuzarea articolului din mijloc înainte de tabel

Suprascriere vs supraîncărcare în C #

Suprascrierea în C # este de a furniza o implementare specifică într-o metodă de clasă derivată pentru o metodă deja existentă în clasa de bază. Supraîncărcarea în C # este de a crea mai multe metode cu același nume cu implementări diferite.
Parametrii
În C # Overriding, metodele au același nume, aceleași tipuri de parametri și același număr de parametri. În supraîncărcarea C #, metodele au același nume, dar un număr diferit de parametri sau un tip diferit de parametri.
Apariție
În C #, suprascrierea are loc în cadrul clasei de bază și a clasei derivate. În C #, supraîncărcarea are loc în aceeași clasă.
Timp obligatoriu
Legarea apelului de metodă suprascrisă la definiția sa are loc la runtime. Legarea apelului metodei supraîncărcate la definiția sa se întâmplă în momentul compilării.
Sinonime
Suprascrierea se numește polimorfism în timpul rulării, polimorfism dinamic sau legare târzie. Supraîncărcarea se numește polimorfism de timp de compilare, polimorfism static sau legare timpurie.

Rezumat - Suprascriere vs supraîncărcare în C #

Suprascrierea și supraîncărcarea sunt două tipuri de polimorfism. Diferența dintre suprascriere și supraîncărcare în C # este că legarea apelului metodei suprascrise la definiția sa are loc în timp de execuție, în timp ce legarea apelului metodei supraîncărcate la definiția sa are loc în momentul compilării.

Recomandat: