martes, 12 de noviembre de 2013

MÉTODOS (FUNCIONES MIEMBRO) - II

Métodos sobrecargados (overloaded) 

Al igual que C++. Java permite métodos sobrecargados (overloaded). es decir, métodos distintos que tienen el mismo nombre, pero que se diferencian por el número y/o tipo de los argumentos. El ejemplo de la clase Circulo del Apartado 3.2 presenta dos casos de métodos sobrecargados: los cuatro constructores y los dos métodos llamados elMayorf). A la hora de llamar a un método sobrecargado. Java sigue unas reglas para determinar el método concreto que debe llamar: 
  1. Si existe el método cuyos argumentos se ajustan exactamente al tipo de los argumentos de la llamada (argumentos acftiales). se llama ese método. 
  2. Si no existe un método que se ajuste exactamente, se intenta promover los argumentos actuales al tipo inmediatamente superior (por ejemplo char a int. int a /ong.float a double, etc.) y se llama el método correspondiente. 
  3. Si sólo existen métodos con argumentos de un tipo más restringido (por ejemplo, int en vez de long). el programador debe hacer un cast explícito en la llamada, responsabilizándose de esta manera de lo que pueda ocurrir. 
  4. El valor de retomo no influye en la elección del método sobrecargado. En realidad es imposible saber desde el propio método lo que se va a hacer con él. No es posible crear dos métodos sobrecargados, es decir con el mismo nombre, que sólo difieran en el valor de retomo. 
Diferente de la sobrecarga de métodos es la redefinición. Una clase puede redefinir (override) un método heredado de una superclase. Redefinir un método es dar una nueva definición. En este caso el método debe tener exactamente los mismos argumentos en tipo y número que el método redefinido. Este tema se verá de nuevo al hablar de la herencia.

No hay comentarios:

Publicar un comentario