este post hace referencia al anterior que vimos sobre polimorfismo ya que en ese post vimos lo que se denomina como polimorfismo estático.
La sobrecarga de métodos podemos definirla como polimorfismo en tiempo de ejecución.
1 - Qué es la sobrecarga de métodos?
Sobrecarga de métodos significa que tenemos múltiples métodos dentro de una clase los cuales contienen el mismo nombre, pero diferentes parámetros.
Estos parámetros pueden ser diferentes en múltiples aspectos:
- Cantidad de parámetros
- Tipo de los parámetros
- Orden de los parámetros
Hay que tener en cuenta que no podemos definir dos métodos iguales, ósea con el mismo nombre, y mismos parámetros y mismo orden ya que resultaría en un error de compilación.
2 – Ejemplo sobrecarga de métodos en C#
La forma más sencilla de ver esto es con un ejemplo.
Disponemos de una clase que realiza una suma a la cual le pasamos dos valores.
public int Suma(int item1, int item2)
{
return item1 + item2;
}
Ahora lo que deseamos es mandar 3 parámetros en vez de 2 lo que haríamos en vez de cambiar los nombres que sería una mala práctica, creamos otro método, con el mismo nombre, pero le pasamos tres parámetros, en vez de dos.
public int Suma(int item1, int item2)
{
return item1 + item2;
}
public int Suma(int item1, int item2, int item3)
{
return item1 + item2 + item3;
}
Y como he indicado previamente, también podemos tener la misma cantidad de parámetros, pero con distintos tipos, el compilador sabe que método es el que debe utilizar y no nos genera ningún problema.
public int Suma(int item1, int item2)
{
return item1 + item2;
}
public string Suma(string item1, int item2)
{
return $"{item2} sumado a {item1}";
}
Como vemos a la hora de ejecutar el código, funciona sin problemas. Además, cuando estamos escribiendo el método que queremos usar, visual studio detecta que es sobrecarga y no nos muestra líneas para elegir el método. Sino que nos muestra solo una, y nos indica que hay 2 métodos mas que hacen sobrecarga.
Y una vez elegido el método, podemos iterar sobre las distintas sobrecargas del mismo con las teclas arriba y abajo.
Y esto seria el ejemplo de llamar a ambos métodos y lo hace sin ningún problema
int resultadoSuma1 = ejemploSobrecarga.Suma(1, 2);
int resultadoSuma2 = ejemploSobrecarga.Suma(1, 2, 3);
Así es como implementamos sobrecarga de métodos en C# definiendo múltiples métodos con el mismo nombre, pero con diferentes parámetros dependiendo de los requisitos que necesitemos.
El código que hemos utilizado en este curso está disponible en github en el siguiente enlace: enlace github