¿Qué es la sobrecarga de funciones?
La sobrecarga de funciones
es una característica de muchos lenguajes de programación donde se pueden crear múltiples métodos con el mismo nombre pero con diferentes parámetros de entrada o tipos de retorno. Esta es una característica común en la programación orientada a objetos; Los constructores en particular pueden tener múltiples variantes sobrecargadas diferentes. Esencialmente, la sobrecarga de funciones es útil cuando dos funciones hacen cosas muy similares y pueden tomar múltiples tipos de entrada para hacerlo. Los constructores se pueden sobrecargar fácilmente porque no tienen un tipo de retorno explícito especificado, por lo que simplemente cambiar los parámetros de entrada de un constructor sería una sobrecarga válida.
La primera forma en que se puede sobrecargar una función es cambiando sus parámetros de entrada. Por ejemplo, uno puede considerar una función llamada "Agregar" que toma como su entrada dos números enteros. El propósito de esta función es bastante obvio; Está destinado a encontrar la suma de dos números enteros.
Si uno quisiera encontrar la suma de dos carrozas, o números decimales, sin embargo, esto funcionaIon no sería aplicable. Por lo tanto, sería necesaria una segunda función sobrecargada, definida como una función llamada "agregar" que toma como su entrada dos flotadores. Las funciones hacen esencialmente lo mismo, pero la sobrecarga de funciones es necesaria porque sus entradas son significativamente diferentes.
La segunda forma en que se puede sobrecargar una función es cambiar tanto sus parámetros de entrada como su tipo de retorno. Usando el ejemplo anterior, uno puede considerar si ambas funciones de "agregar" sobrecargadas tenían un tipo de retorno vacío; Es decir, no devolvieron nada. Esto aún sería una sobrecarga de funciones válidas, pero los tipos de retorno de los dos métodos también podrían cambiarse. En otra instancia válida de sobrecarga, la función "Agregar" que toma dos números enteros podría devolver esa suma de número entero, y la función "Agregar" que toma dos números decimales podría devolver esa suma de número decimal.
Simplemente cambiando el tipo de retorno OSin embargo, no se considera una sobrecarga de función válida. Cambiar solo el tipo de retorno de una función da como resultado ambigüedad, porque no está claro desde la firma del método que se desea el tipo de retorno. Los parámetros también se pueden definir de manera ambigua, por lo que es muy importante que las funciones sobrecargadas se llamen correctamente. Por ejemplo, si uno tiene una función sobrecargada que tiene un número completo como parámetro de entrada, y otro que tiene un número decimal como parámetro, sería muy fácil para alguien llamar accidentalmente la función del número decimal en lugar de la función de número entero, o viceversa, porque tiene el mismo nombre. Los parámetros ambiguos como estos deben evitarse si es posible, y si no pueden estar, se debe tener mucho cuidado para garantizar que la función sobrecargada adecuada se llame en los momentos adecuados.
La sobrecarga de funcioneses útil para crear funciones relacionadas con tipos de entrada variados, y le da al código una gran flexibilidad. Una consideración finalEn las funciones sobrecargadas es que los comentarios adecuados son esenciales. Aunque podría ser claro por diferentes parámetros de entrada qué versión de una función sobrecargada es adecuada para una situación particular, no siempre puede ser claro precisamente lo que la función hace de manera diferente a sus otros socios sobrecargados.