Diferència entre anul·lació i sobrecàrrega en C

Taula de continguts:

Diferència entre anul·lació i sobrecàrrega en C
Diferència entre anul·lació i sobrecàrrega en C

Vídeo: Diferència entre anul·lació i sobrecàrrega en C

Vídeo: Diferència entre anul·lació i sobrecàrrega en C
Vídeo: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Desembre
Anonim

Diferència clau: anul·lació i sobrecàrrega en C

La diferència clau entre la substitució i la sobrecàrrega en C és que la vinculació de la trucada de mètode anul·lada a la seva definició es produeix en temps d'execució, mentre que la vinculació de la trucada de mètode sobrecarregada a la seva definició es produeix en temps de compilació.

C és un llenguatge de programació de propòsit general desenvolupat per Microsoft. El principal avantatge de C és que admet la programació orientada a objectes (OOP). Un dels pilars de la POO és el polimorfisme. Dóna que un objecte tingui múltiples comportaments. Hi ha dos tipus de polimorfisme coneguts com a anul·lació i sobrecàrrega. En aquest article es parla de la diferència entre la substitució de mètodes i la sobrecàrrega en C.

Què és l'anul·lació en C?

Hi ha un altre concepte important a la POO és l'herència. És utilitzar atributs i mètodes de la classe ja existent. Millora la reutilització del codi. La classe ja existent és la classe base i la nova classe es coneix com a classe derivada. En anul·lar el polimorfisme, hi hauria d'haver una classe base i una classe derivada. La vinculació de la trucada de mètode anul·lada a la definició es produeix en temps d'execució. Un exemple és el següent.

Diferència entre anul·lació i sobrecàrrega en C
Diferència entre anul·lació i sobrecàrrega en C

Figura 01: Programa C amb anul·lació

Segons el programa anterior, la classe Shape és la classe base i conté el mètode de visualització. Classe Rectangle i Triangle són classes derivades. Aquestes classes derivades també tenen la mateixa visualització de mètodes amb les seves pròpies implementacions.

Primer, es crea la variable de referència obj. Apunta a l'objecte Forma. Per tant, s'executarà el mètode de visualització de la classe Shape. Aleshores, la variable de referència apunta a l'objecte Rectangle. Per tant, s'executarà el mètode de visualització de la classe Rectangle. Finalment, la variable de referència apunta a l'objecte Triangle. Per tant, s'executarà el mètode de visualització de la classe Triangle. El mètode de visualització de la classe base se substitueix pels mètodes de visualització de les classes derivades.

El mètode a executar es decideix en temps d'execució. La classe Shape s'escriu amb la paraula clau "virtual". Les classes Rectangle i Triangle s'escriuen amb la paraula clau "override". Si no s'utilitzen aquestes paraules clau, la sortida imprimirà el contingut del mètode de visualització de la classe Shape per a tots.

Què és la sobrecàrrega en C?

En la sobrecàrrega, diversos mètodes tenen el mateix nom però amb paràmetres diferents. Els paràmetres poden ser de diferents tipus. Els mètodes també poden tenir un nombre diferent de paràmetres. La sobrecàrrega del mètode es produeix a la mateixa classe. La vinculació de mètodes sobrecarregats a la definició es produeix en temps de compilació. Consulteu el programa C següent.

Diferència clau entre la substitució i la sobrecàrrega en C
Diferència clau entre la substitució i la sobrecàrrega en C

Figura 02: Programa C amb sobrecàrrega

Segons el programa anterior, la classe A té dos mètodes amb el mateix nom anomenats suma. Tenen diferents tipus de paràmetres. Al programa principal, es crea un objecte de A. La suma (2, 3) invocarà el mètode de suma amb nombres enters. La suma (5.1, 7.94) invocarà el mètode de suma amb valors dobles. Tots dos mètodes tenen el mateix nom i el mateix nombre de paràmetres. Però els tipus de paràmetres són diferents. El mètode requerit s'anomena en conseqüència. També es pot produir una sobrecàrrega si els noms dels mètodes i els tipus de paràmetres són els mateixos, però el nombre de paràmetres és diferent.

Quina semblança hi ha entre la substitució i la sobrecàrrega en C?

Tant l'anul·lació com la sobrecàrrega en C són tipus de polimorfisme

Quina diferència hi ha entre la substitució i la sobrecàrrega en C?

Anul·lació vs sobrecàrrega en C

La substitució en C és proporcionar una implementació específica en un mètode de classe derivada per a un mètode que ja existeix a la classe base. La sobrecàrrega en C és crear diversos mètodes amb el mateix nom amb diferents implementacions.
Paràmetres
A la substitució de C, els mètodes tenen el mateix nom, els mateixos tipus de paràmetres i el mateix nombre de paràmetres. A la sobrecàrrega de C, els mètodes tenen el mateix nom però un nombre diferent de paràmetres o un tipus diferent de paràmetres.
Ocurrència
En C, la substitució es produeix a la classe base i a la classe derivada. En C, la sobrecàrrega es produeix dins de la mateixa classe.
Temps d'enllaç
La vinculació de la crida al mètode anul·lada a la seva definició es produeix en temps d'execució. La vinculació de la crida al mètode sobrecarregada a la seva definició es produeix en temps de compilació.
Sinònims
La substitució s'anomena polimorfisme en temps d'execució, polimorfisme dinàmic o enllaç tardà. La sobrecàrrega s'anomena polimorfisme en temps de compilació, polimorfisme estàtic o enllaç precoç.

Resum: anul·lació i sobrecàrrega en C

L'anul·lació i la sobrecàrrega són dos tipus de polimorfisme. La diferència entre la substitució i la sobrecàrrega en C és que la vinculació de la trucada de mètode anul·lada a la seva definició es produeix en temps d'execució, mentre que la vinculació de la trucada de mètode sobrecarregada a la seva definició es produeix en temps de compilació.

Recomanat: