You are on page 1of 3

Unidad 21.

La sobrecarga en las clases (I)


21.1. Objetivos del tema.
La sobrecarga, overload, es la posibilidad de tener varias versiones de un
mismo mtodo, vamos a ver como crearlo y como funciona.
21.2. Introduccin.
Una de las caractersticas de las clases es la posibilidad de poder escribir varias
versiones de un mismo mtodo, sin necesidad de cambiar el nombre, de esa
forma se puede salvar el problema que puede surgir al tener que realizar la
misma accin pero con escenarios distintos, en caso de que no existiera la
sobre carga, eso nos llevara a tener que escribir la misma cantidad de
mtodos pero con nombres distintos, lo que complicara la eleccin del mtodo
adecuado en alguna ocasin.
La sobrecarga se produce cuando el mtodo coincide en nombre pero no en el
nmero de argumentos o aunque tenga el mismo nmero de argumentos el
tipo de los datos de los mismos cambia.
21.3. Creacin.
La sobrecarga en realidad implica la escritura de tantos mtodos como
versiones tengamos, eso es as porque si se da la circunstancia de distintos
escenarios en cada uno de ellos, aunque cada mtodo en realidad realice la
misma tarea, el punto de partida ser distinto, por lo que dar lugar a distintas
formas de realizar la misma tarea, y distintas lneas de argumentos de entrada
al mtodo.
Tampoco es que haya que reescribir todo el mtodo por completo, pensemos
que disponemos de los procedimientos, y estos estarn disponibles para los
mencionados mtodos, y posiblemente solo sea necesario reescribir parte del
mismo, sobre todo si se estructura bien el mtodo desde su origen.
Como ejemplo veamos el siguiente mtodo.

Clase Ejemplo
Metodo Suma(Entero A, Entero B)
Suma = A + B + C
Final Metodo

Metodo Suma(Real A, Entero B, Largo C)


Suma = A + B + C
Final Metodo
Final Clase

Podemos observar como en el ejemplo tenemos el mtodo Suma en dos


ocasiones, pero disponen de distintas lneas de argumentos, en un caso son
dos y en el segundo dispone de tres argumentos en la lnea de entrada.
Pero no tiene porque ser distintas las lneas de entrada, veamos el siguiente
caso.

Clase Ejemplo
Metodo Suma(Entero A, Entero B, Entero C)
Suma = A + B + C
Final Metodo

Metodo Suma(Real A, Entero B, Largo C)


Suma = A + B + C
Final Metodo

Metodo Suma(Simple A, Doble B, Corto C)


Suma = A + B + C
Final Metodo
Final Clase

Si vemos el ejemplo, podemos observar que el mtodo Suma est escrito tres
veces, pero a pesar de que tiene tres argumentos en cada uno de ellos, los
argumentos son de distinto tipo, por lo que en realidad son tres versiones
distintas, bajo el mismo nombre.

En el ejemplo siguiente lo que tenemos no es una sobre carga y dara error,


porque la firma, identificacin, como deseemos llamarlo, de los mtodos es
idntica.
Clase Ejemplo
// Son iguales en nombre, argumentos y tipo
Metodo Suma(Entero A, Entero B, Entero C)
Suma = A + B + C
Final Metodo
Metodo Suma(Entero A, Entero B, Entero C)
Suma = A + B + C
Final Metodo
// Son iguales en nombre, argumentos y tipo

Metodo Suma(Real A, Entero B, Largo C)


Suma = A + B + C
Final Metodo

Metodo Suma(Real A, Entero B, Largo C)


Suma = A + B + C
Final Metodo
Final Clase
21.4. Conclusiones.
La sobre carga, overload, nos permite que un mismo mtodo podamos tenerlo
escrito con distintas versiones y con el mismo nombre, de forma que podemos
tener distintos puntos de partida para una misma accin.
La sobrecarga se produce cuando el mtodo coincide en nombre pero no en el
nmero de argumentos o aunque tenga el mismo nmero de argumentos el
tipo de los mismos cambia.

You might also like