Sobrecàrrega de mètodes

La Sobrecàrrega de mètodes (en anglès function overloading) és quan es defineixen dos mètodes amb el mateix nom i a la mateixa classe però amb diferents implementacions. L'execució d'una crida a un mètode sobrecarregat dependrà aleshores del context de la crida.

Per exemple, ferTasca() i ferTasca(Objecte O) són mètodes sobrecarregats. Per cridar al primer no cal que li passem cap paràmetre, en canvi el segon necessita un paràmetre de tipus Objecte. Aleshores segons la crida que s'hagi fet s'executarà una implementació o una altra.

Cada llenguatge de programació té les seves peculiaritats per fer ús de la sobrecàrrega de mètodes,[1] per exemple en Java es pot tenir la funció o mètode sobrecarregat amb el mateix nombre de paràmetres però essent de tipus diferent,[2] ja que si fossin iguals, el compilador no sabria quin triar.[3] I en C++ es poden donar valors per defecte als paràmetres,[4] de manera que quan es crida a la funció, si s'omet el paràmetre, aquest obtindrà el valor per defecte assignat en la seva declaració.

Regles per la sobrecàrrega

Bàsicament podem sobrecarregar mètodes a partir de dues regles generals, tot i que podem trobar altres regles segons el llenguatge que estiguem utilitzant.

  • Tenir diferent nombre d'arguments
  • Si hi ha el mateix nombre d'arguments que siguin de tipus diferents
  • Que el mètode o funció retorni un tipus de dada o un altre és indiferent

Exemples

public int suma(int a, int b)public long suma(long a, long b)public long suma(long a, long b, long c)

Sobrecàrrega de constructors

La sobrecàrrega de constructors s'utilitza per crear o instanciar objectes de formes diferents.Per exemple tenim aquests tres constructors d'un objecte anomenat Persona en llenguatge java on podem crear una Persona a partir del seu nom i els dos cognoms, a partir del seu nom i només el seu primer cognom o bé la Persona sense cap dada.

public class Persona { private String Nom, Cognom1, Cognom2; //Constructor Persona amb Nom i 2 cognoms public Persona(String n, String c1, String c2) { Nom = n; Cognom1 = c1; Cognom2 = c2; } //Constructor Persona amb Nom i el primer cognom public Persona(String n, String c1) { Nom = n; Cognom1 = c1; Cognom2 = null; } //Constructor Persona sense cap dada public Persona() { Nom = null; Cognom1 = null; Cognom2 = null; }}

Referències

Enllaços externs

🔥 Top keywords: PortadaEspecial:CercaCarles Porta i GasetTor (Alins)À Punt FMTor (sèrie de televisió)Llista de municipis de CatalunyaEmilio Delgado OrgazEspecial:Canvis recentsGuinguetaXavlegbmaofffassssitimiwoamndutroabcwapwaeiippohfffXFacultat universitàriaManuel de Pedrolo i MolinaViquipèdia:ContacteBea Segura i FolchAlbert Jané i RieraNit de Sant JoanMort, qui t'ha mort?David Madí i CendrósCarles Puigdemont i CasamajóVila-sanaEwa PajorNicolás SartoriusAlinsAntoni Comín i OliveresGoogle ChromeClara Ponsatí i ObiolsPara-xocsDotze homes sense pietatValtònycLluís Puig i GordiAamer AnwarÈdafonLaura Borràs i CastanyerKylian MbappéPablo HasélFesta del sacrificiJosep Costa i RossellóDionís Guiteras i Rubio