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: Difference Between Function Overloading and Overriding in C++ | Learn Coding 2024, Iulie
Anonim

Diferență cheie – Suprascriere vs supraîncărcare în C

Diferența cheie dintre suprascrie și supraîncărcare în C este că legarea apelului de metodă suprascrisă la definiția sa are loc în timpul execuției, în timp ce legarea apelului de metodă supraîncărcat la definiția sa are loc în timpul 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 OOP este polimorfismul. Oferă unui obiect să aibă mai multe comportamente. Există două tipuri de polimorfism cunoscute ca suprascriere și supraîncărcare. Acest articol discută diferența dintre suprascrierea metodei și supraîncărcarea în C.

Ce este suprascrie în C?

Există un alt concept important în POO este moștenirea. Este de a folosi 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ă ca clasa 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 în timpul execuției. 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 lor implementări.

În primul rând, este creată variabila de referință obj. Indica obiectul Shape. Deci, metoda de afișare a clasei Shape se va executa. Apoi, variabila de referință indică către obiectul dreptunghi. Deci, metoda de afișare a clasei Rectangle se va executa. În cele din urmă, variabila de referință indică obiectul Triunghi. Deci, metoda de afișare a clasei Triangle se va executa. Metoda de afișare a clasei de bază este înlocuită de metodele de afișare ale claselor derivate.

Metoda de rulare este decisă în timpul execuției. Clasa Shape este scrisă cu cuvântul cheie „virtual”. Clasele Rectangle și Triangle sunt scrise cu cuvântul cheie „override”. Dacă aceste cuvinte cheie nu sunt folosite, 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 timpul 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 numite sum. Au diferite tipuri de parametri. În programul principal, este creat 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 numită în consecință. Supraîncărcarea poate apărea și dacă numele metodelor și tipurile de parametri sunt aceleași, dar numărul de parametri este diferit.

Care este asemănarea între 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?

Anulare vs supraîncărcare î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ă. Supraîncărcarea în C înseamnă crearea mai multor metode cu același nume cu implementări diferite.
parametri
În suprascrierea C, 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 clasa de bază și în clasa derivată. În C, supraîncărcarea are loc în cadrul aceleiași clase.
Timp de legare
Legarea apelului de metodă suprascris la definiția sa are loc în timpul execuției. Legarea apelului de metodă supraîncărcat la definiția sa are loc în timpul compilării.
Sinonime
Anularea se numește polimorfism de rulare, polimorfism dinamic sau legare tardivă. Supraîncărcarea se numește polimorfism în timp de compilare, polimorfism static sau legare timpurie.

Rezumat – Suprascriere vs supraîncărcare în C

Overriding și Overloading sunt două tipuri de polimorfism. Diferența dintre suprascrie și supraîncărcare în C este că legarea apelului metodei suprascrise la definiția sa are loc în timpul execuției, în timp ce legarea apelului metodei supraîncărcate la definiția sa are loc în timpul compilării.

Recomandat: