POO Sobrecàrrega

De Cacauet Wiki
Salta a la navegació Salta a la cerca

La sobrecàrrega és la capacitat de definir el mateix mètode diversos cops en funció del tipus d'arguments que se li passen.

En C++, per exemple:

class Punt {
   private:
     int posx;
     int posy;
   public:
     void setCoord(int x, int y) {
        posx = x;
        posy = y;
     }
     void setCoord(int a) {
        posx = a;
        posy = a;
     }
}

Com es pot veure, serà diferent si faig la crida a una funció o a l'altra:

Punt p;
p.setCoord(10,20);

En canvi, cridaré a la 2a funció si faig (els 2 valors valdran "10"):

p.setCoord(10);


En Python, de nou, no és rellevant, ja que l'argument no té un tipus predefinit. Per simular el comportament de la sobrecàrrega utilitzem els Python: keyworded arguments.