Polimorfisme (programació): diferència entre les revisions

Contingut suprimit Contingut afegit
Línia 20:
==== Poliformisme ad hoc ====
El [[Polimorfisme ad hoc|poliformisme ad hoc]] (o poliformisme estàtic) és aquell en què el codi necessita el tipus de dades amb les quals es treballa, és a dir, els tipus de dades han de ser explicits i declarats un per un abans de poder ser utilitzats.
 
També s'anomena polimorfisme de sobrecàrrega si una funció actua sobre el mateix tipus de variables. Aquest polimorfisme el suporten la gran majoría de llenguatges.
 
(Per exemple: es pot fer "i + j" amb "ints" o "floats")
 
El polimorfisme de sobre-càrrega, consisteix a implementar diverses vegades un mateix mètode però amb paràmetres diferents, de tal manera que en invocar-lo, el compilador decideix quin dels mètodes s'ha d'executar, en funció dels paràmetres de la crida:
int entraElTeuPes (int pes) { .... codi1 .... }
int entraElTeuPes (String pes) { .... codi2 .... }
void funcio () {
entraElTeuPes (65); // Invonca el primer mètode executant el "codi1".
entraElTeuPes ("65"); // Invonca el segon mètode executant el "codi2".
}
==== Poliformisme paramètric ====
El poliformisme paramètric (o poliformisme dinàmic) és aquell en què el codi no inclou cap tipus d'especificació sobre el tipus de dades sobre les quals treballa, per tant, pot ser utilitzada transparentment amb qualsevol nombre de nous tipus. La independència envers les dades provoca que pot ser utilitzat per qualsevol tipus de dades compatible. En programació orientada a objectes, se'n sol dir programació genèrica. En la communitat de programació, aquest és el polimorfisme més habitual i se'n sol dir simplement polimorfisme.
Linha 182 ⟶ 169:
 
=== Polimorfisme de sobre-càrrega i de sobre-escriptura ===
El polimorfisme de sobre-càrrega, consisteix a implementar diverses vegades un mateix mètode però amb paràmetres diferents, de tal manera que en invocar-lo, el compilador decideix quin dels mètodes s'ha d'executar, en funció dels paràmetres de la crida:.
 
També s'anomena polimorfisme de sobrecàrrega si una funció actua sobre el mateix tipus de variables. Aquest polimorfisme el suporten la gran majoría de llenguatges.
 
(Per exemple: es pot fer "i + j" amb "ints" o "floats")
 
Un altre exemple:
 
int entraElTeuPes (int pes) { .... codi1 .... }