En Java es posible definir dos o más métodos dentro de la misma clase que compartan el mismo nombre pero las declaraciones de sus parámetros deben ser diferentes. A esto es a lo que se conoce como Sobrecarga de Métodos.
La Sobrecarga es uno de los procedimientos mediante el cual Java implementa el polimorfismo(en programación orientada a objetos es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación)
Ejemplo.- Definir una clase con 3 métodos sobrecargados,prueba(), diferenciándose uno de otro por el número/tipo de parámetros y el medoto main() llamará a cada uno de ellos
class Sobrecarga {
public void prueba()
{
System.out.println(“\n Metodo sin Argumentos:()”);
}
public void prueba(int x) // Sobrecarga de prueba() con un parámetro tipo int
{
System.out.print(“\n Metodo con un Argumento:”);
System.out.println(“ x= “ +x);
}
public void prueba(double x, double y, double z) //Sobrecarga de prueba() con tres parámetros tipo double
{
System.out.print(“\n Metodo con tres Argumentos:”);
System.out.println(“ x= “ +x+ “ y= “ + y + “ z= “ + z + “\n”);
}
}
class Demostracion Sobrecarga {
public static void main (String [] var)
{
Sobrecarga objeto= new Sobrecarga(); //Se crea un Objeto de nombre Objeto para llamar a los Métodos Sobrecargados
objeto.prueba();
objeto.prueba(30);
objeto.prueba(−3.5,20.0,18.6);
}
}
Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes argumentos (opcionalmente un tipo diferente de retorno).
Las reglas para sobrecargar un método son las siguientes:
+ Los métodos sobrecargados debeb de cambiar la lista de argumentos.
+ Pueden cambiar el tipo de retorno.
+ Pueden cambiar el modificador de acceso.
+ Pueden declarar nuevas o más amplias excepciones.
+ Un método puede ser sobrecargado en la misma clase o en una subclase.
Cómo invocar un método sobrecargado:
Lo que define qué método es el que se va a llamar son los argumentos que se envían al mismo durante la llamada. Si se invoca a un método con un String como argumento, se ejecutará el método que tome un String como argumento, si se manda a llamar al mismo método pero con un float como argumento, se ejecutará el método que tome un float como argumento y así sucesivamente. Si se invoca a un método con un argumento que no es definido en ninguna de las versiones sobrecargadas entonces el compilador arrojará un mensaje de error.
Ejemplo de una clase con un método sobrecargado:
public class Sobrecarga {
public void Numeros(int x, int y){
System.out.println("Método que recibe enteros.");
}
public void Numeros(double x, double y){
System.out.println("Método que recibe flotantes.");
}
public void Numeros(String cadena){
System.out.println("Método que recibe una cadena: "+ cadena);
}
public static void main (String... args){
Sobrecarga s = new Sobrecarga();
int a = 1;
int b = 2;
s.Numeros(a,b);
s.Numeros(3.2,5.7);
s.Numeros("abc123");
}
}
Al ejecutar el código anterior obtendremos lo siguiente:
Método que recibe enteros.
Método que recibe flotantes.
Método que recibe una cadena: abc123
[ Read More ]
La Sobrecarga es uno de los procedimientos mediante el cual Java implementa el polimorfismo(en programación orientada a objetos es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación)
Ejemplo.- Definir una clase con 3 métodos sobrecargados,prueba(), diferenciándose uno de otro por el número/tipo de parámetros y el medoto main() llamará a cada uno de ellos
class Sobrecarga {
public void prueba()
{
System.out.println(“\n Metodo sin Argumentos:()”);
}
public void prueba(int x) // Sobrecarga de prueba() con un parámetro tipo int
{
System.out.print(“\n Metodo con un Argumento:”);
System.out.println(“ x= “ +x);
}
public void prueba(double x, double y, double z) //Sobrecarga de prueba() con tres parámetros tipo double
{
System.out.print(“\n Metodo con tres Argumentos:”);
System.out.println(“ x= “ +x+ “ y= “ + y + “ z= “ + z + “\n”);
}
}
class Demostracion Sobrecarga {
public static void main (String [] var)
{
Sobrecarga objeto= new Sobrecarga(); //Se crea un Objeto de nombre Objeto para llamar a los Métodos Sobrecargados
objeto.prueba();
objeto.prueba(30);
objeto.prueba(−3.5,20.0,18.6);
}
}
Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes argumentos (opcionalmente un tipo diferente de retorno).
Las reglas para sobrecargar un método son las siguientes:
+ Los métodos sobrecargados debeb de cambiar la lista de argumentos.
+ Pueden cambiar el tipo de retorno.
+ Pueden cambiar el modificador de acceso.
+ Pueden declarar nuevas o más amplias excepciones.
+ Un método puede ser sobrecargado en la misma clase o en una subclase.
Cómo invocar un método sobrecargado:
Lo que define qué método es el que se va a llamar son los argumentos que se envían al mismo durante la llamada. Si se invoca a un método con un String como argumento, se ejecutará el método que tome un String como argumento, si se manda a llamar al mismo método pero con un float como argumento, se ejecutará el método que tome un float como argumento y así sucesivamente. Si se invoca a un método con un argumento que no es definido en ninguna de las versiones sobrecargadas entonces el compilador arrojará un mensaje de error.
Ejemplo de una clase con un método sobrecargado:
public class Sobrecarga {
public void Numeros(int x, int y){
System.out.println("Método que recibe enteros.");
}
public void Numeros(double x, double y){
System.out.println("Método que recibe flotantes.");
}
public void Numeros(String cadena){
System.out.println("Método que recibe una cadena: "+ cadena);
}
public static void main (String... args){
Sobrecarga s = new Sobrecarga();
int a = 1;
int b = 2;
s.Numeros(a,b);
s.Numeros(3.2,5.7);
s.Numeros("abc123");
}
}
Al ejecutar el código anterior obtendremos lo siguiente:
Método que recibe enteros.
Método que recibe flotantes.
Método que recibe una cadena: abc123