Las ventajas y desventajas del método de sobrecarga en Java

Los métodos sobrecargados son métodos de la misma clase que comparten el mismo nombre pero aceptan diferentes tipos de variables como argumentos. Por ejemplo, una clase puede contener dos métodos "agregar" diferentes: uno que acepta dos valores dobles, "agregar (doble a, doble b)" y otro que acepta dos valores enteros, "agregar (int a, int b)". La computadora decide automáticamente a qué método llamar en tiempo de ejecución en función de los tipos de variables que se pasan al método.

Flexibilidad

Los métodos sobrecargados dan a los programadores la flexibilidad de llamar a un método similar para diferentes tipos de datos. Si está trabajando en un programa de matemáticas, por ejemplo, podría usar la sobrecarga para crear varias clases de "multiplicación", cada uno de los cuales multiplica un número diferente de tipo de argumento: el más simple "multiplica (int a, int b)" multiplica dos enteros el método más complicado "multiplica (doble a, int b, int c)" multiplica un doble por dos enteros - entonces podrías llame a "multiplicar" en cualquier combinación de variables para las que haya creado un método sobrecargado y reciba el resultado adecuado.

Video del día

Constructores

La sobrecarga también se usa en constructores para crear nuevos objetos dadas diferentes cantidades de datos. Por ejemplo, podría usar la sobrecarga para crear tres constructores diferentes para un objeto "Casa" con un número de casa, nombre de calle y variables de color. El constructor más simple "House ()" no toma argumentos y crea una casa con variables predeterminadas o vacías. Un constructor más complejo, "House (int houseNumber, String streetName)," crea una casa con el número de casa y el nombre de la calle especificados, pero con un color predeterminado o vacío. El constructor más complejo, "House (int houseNumber, String streetName, String color)", crea una casa con toda la información especificada, sin dejar nada como predeterminado. A continuación, puede crear un objeto de la casa en función de la información disponible actualmente, con la información no disponible en blanco o por defecto.

Referencias ambiguas

Los métodos sobrecargados deben utilizar diferentes números o tipos de argumentos para evitar ambigüedades. Si crea dos métodos en la misma clase que tienen el mismo nombre y acepta dos enteros como argumentos, el El compilador de Java no podrá distinguir entre los dos, incluso si las variables de entrada tienen nombres diferentes. Por ejemplo, el método "add (int a, int b)" no puede existir en la misma clase que el método "add (int c, int d)".

Tipos de devoluciones

Debe definir un tipo de retorno para cada método sobrecargado. Los métodos pueden tener diferentes tipos de retorno; por ejemplo, "add (int a, int b)" puede devolver un número entero, mientras que "add (double a, double b)" devuelve un doble. Sin embargo, Java no puede distinguir entre dos métodos diferentes según su tipo de retorno. Por lo tanto, "int multiplica (doble a, doble b)" no puede existir en la misma clase que "doble multiplicación (doble a, doble b)".