Introducción a la sobrecarga en Java

Java es un lenguaje de programación orientado a objetos y sigue conceptos básicos de OOP. La sobrecarga es uno de los conceptos importantes en Java. La sobrecarga permite diferentes métodos que tienen el mismo nombre en una clase pero con diferentes firmas. La firma incluye el número de parámetros, el tipo de datos de los parámetros y la secuencia de parámetros pasados ​​en el método. En Java, el método y los constructores, ambos pueden sobrecargarse. La sobrecarga de métodos se realiza en tiempo de compilación y, por lo tanto, se conoce en el polimorfismo en tiempo de compilación. La sobrecarga de métodos en una clase se realiza para aumentar la legibilidad de los programas de modo que el programador pueda escribir una implementación mejorada de cualquier método para diferentes escenarios.

Considere un escenario en el que el programador quiera averiguar el volumen de varias figuras geométricas como el cubo, el cilindro y el prisma rectangular. Como tres de ellos tienen una fórmula diferente para encontrar el volumen y tienen un número diferente de parámetros. El volumen del cubo necesitará solo un parámetro, el cilindro tomará dos y el prisma rectangular tomará tres parámetros. Pero el objetivo principal es encontrar solo el volumen de las cifras. Entonces podemos crear métodos separados de volumen para diferentes figuras pero con el mismo nombre. De esta manera, la sobrecarga de métodos se utiliza en escenarios prácticos.

¿Cómo funciona la sobrecarga en Java?

El funcionamiento de la sobrecarga de métodos se explica con un ejemplo:

Código:

class Main(
int volume(int side)
(
return side * side * side;
)
int volume(int length, int breadth, int height)
(
return length*breadth*height;
)
double volume(int radius, int height)
( return 3.14 * (radius * radius)* height / 3;
)
public static void main(String() args)
(
Main oe = new Main();
System.out.println("Volume of Cube " +oe.volume(10));
System.out.println("Volume of Rectangular prism " +oe.volume(10, 12, 30));
System.out.println("Volume of Cone "+oe.volume(5, 10));
) )

Salida:

Explicación del código anterior: en el ejemplo anterior, necesitamos encontrar el volumen de 3 figuras geométricas, por lo que hemos creado 3 métodos sobrecargados separados con el mismo nombre que 'volumen' pero todos los métodos tienen diferentes números de argumentos. Entonces, en el método principal, cuando se ejecuta one.volume (10), se llama al método de volumen que tiene un solo parámetro, es decir, int volume (int side). De manera similar para los otros métodos de volumen, en función del número de argumentos, se llaman y procesan diferentes métodos.

En este ejemplo, los métodos se sobrecargan en función del número de argumentos, pero también se pueden sobrecargar en función del tipo de datos de los parámetros y la secuencia de parámetros y, por lo tanto, se invocan de acuerdo con eso únicamente.

Tipos de sobrecarga en Java

Básicamente, existen 3 formas de sobrecarga de métodos en Java:

1. Número de parámetros

Los métodos Java se pueden sobrecargar por el número de parámetros pasados ​​en el método. Por ejemplo, si el método 1 de volumen tiene 2 parámetros y otro método tiene 3 parámetros, entonces se trata de Sobrecarga en función del número de parámetros.

Código:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on number of parameters
int mult(int a, int b, int c) // method mult having 3 parameters
(
return a*b*c;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10, 9, 8));
)
)

Salida:

2. Tipo de datos de los parámetros

El tipo de datos de los parámetros pasados ​​en el método es muy importante y, por lo tanto, los métodos se pueden considerar como Sobrecargados si 2 o los métodos tienen el mismo nombre que tiene el mismo número de argumentos o diferente pero diferentes tipos de parámetros de datos en los diferentes métodos.

Código:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on datatype of parameters
double mult(double a, double b) // method mult overloaded
(
return a*b;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10.5, 9.8));
)
)

Salida:

3. Secuencia de parámetros

La sobrecarga de métodos también se puede hacer cambiando la secuencia de parámetros de 2 o más métodos sobrecargados. Por ejemplo, si los parámetros de 1 método son (String x, char y) y el otro método es (char x, String y) pero ambos tienen el mismo nombre, entonces los 2 métodos anteriores se consideran Sobrecargados por una secuencia diferente de parámetros

Código:

class Employee
(
void details(String name, char rank) // method details having 2 parameters
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
) //Method Overloading on sequence of parameters
void details(char rank, String name) // method details overloaded
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
)
)
class Main
(
public static void main(String() args)
( Employee emp = new Employee();
emp.details("Rajesh", 'A'); // calls the first method (details(String, char))
emp.details("Ram", 'B'); // calls the second method (details(char, String))
)
)

Salida:

Explicación del código anterior: en el ejemplo anterior, ambos métodos de 'detalles' están sobrecargados en función de la secuencia de parámetros. Cuando se llama a la declaración emp.details ('Rajesh', 'A'), se llama y procesa el método que tiene los argumentos en el orden (String, char), es decir, detalles nulos (String name, char rank).

Reglas para sobrecargar en Java

A continuación se detallan las reglas que se deben recordar en la sobrecarga de Java:

  • La primera y principal regla de la sobrecarga de métodos es que los métodos deben tener el mismo nombre en una sola clase.
  • Se pueden sobrecargar dos o más métodos en una clase sobre la base de diferentes firmas y la firma incluye el número de parámetros, tipos de datos de parámetros, la secuencia de parámetros como se explicó anteriormente.
  • El tipo de retorno de un método no forma parte de la firma, por lo que la sobrecarga nunca se puede realizar en función del tipo de retorno y, si se hace, esto crea el error en tiempo de compilación.

Conclusión

La sobrecarga es uno de los conceptos importantes en Java y puede realizarse tanto para métodos como para constructores. Hay algunas reglas de sobrecarga que deben tenerse en cuenta antes de implementar eso en la programación.

Artículos recomendados

Esta es una guía de sobrecarga en Java. Aquí discutimos ciertas reglas para la sobrecarga que deben considerarse antes de implementar conceptos importantes en Java, métodos y constructores. También puede consultar nuestros otros artículos relacionados para obtener más información:

  1. Sobrecarga en C ++
  2. Herramientas de implementación de Java
  3. Herencia en Java
  4. Sobrecarga en PHP
  5. Polimorfismo en Java
  6. Herencia en PHP