Métodos sobrecargados son los 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 de "añadir " diferentes : una que acepta dos valores double ", añadir ( un doble , doble b)," y uno que acepta dos valores enteros , " add ( int a , int b ) . " el equipo decide automáticamente cuál método de llamar en tiempo de ejecución sobre la base de los tipos de variables que se pasan al método . Flexibilidad
métodos sobrecargados dan a los programadores la flexibilidad de llamar a un método similar para los diferentes tipos de datos. Si está trabajando en un programa de matemáticas , por ejemplo , podría utilizar una sobrecarga para crear varias clases " multiplican " , cada uno de lo que multiplica un número diferente de tipo de argumento: el más simple "multiply ( int a , int b ) " , multiplica dos números enteros , el método más complicado " se multiplican (el doble de un int b , int c ) " multiplica un doble de dos números enteros - usted podría entonces llamar a " multiplicar " en cualquier combinación de variables que creó una sobrecarga método y recibir el resultado correcto .
constructores
sobrecarga también se utiliza en los constructores para crear nuevos objetos dados diferentes cantidades de datos. Por ejemplo , podría utilizar una sobrecarga para crear tres constructores diferentes para un objeto de " House" , con un número de casa , nombre de la calle y las variables de color. La "Casa ()" simple constructor toma ningún argumento y crea una casa con un valor predeterminado o las variables vacías. Un constructor más complejo " Casa de Piedra ( int houseNumber , StreetName String) , " crea una casa con el número de la casa y el nombre de la calle , pero un color por defecto o vacío. El constructor más complejo " Casa de Piedra ( int houseNumber , String nombre de la calle , color String) , " crea una casa con toda la información especificada , sin dejar nada por defecto. A continuación, puede crear un objeto de la casa en base a la información actualmente disponible, con la información disponible en blanco o en caso de incumplimiento .
Ambiguas referencias
métodos sobrecargados deben utilizar diferentes números o tipos de argumentos para evitar la ambigüedad . Si crea dos métodos en la misma clase que tienen el mismo nombre y aceptan dos enteros como argumentos, el compilador Java no será capaz de distinguir entre los dos , aunque las variables de entrada tienen diferentes nombres. 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 valor devueltos
debe definir un tipo de cambio de cada método sobrecargado . Los métodos pueden tener diferentes tipos de retorno - por ejemplo, " add ( int a , int b ) " puede devolver un entero , mientras que " add ( doble A , doble b ) " devuelve un doble. Sin embargo , Java no puede distinguir entre dos métodos diferentes en función de su tipo de cambio. Por lo tanto , "multiplicar int ( duplicar una doble b ) " no puede existir en la misma clase que "multiplicar doble ( doble un doble b ) . "
< Br >