Introdução à sobrecarga em Java

Java é uma linguagem de programação orientada a objetos e segue os conceitos básicos de OOPs. Sobrecarga é um dos conceitos importantes em Java. A sobrecarga permite métodos diferentes com o mesmo nome em uma classe, mas com assinaturas diferentes. A assinatura inclui o número de parâmetros, o tipo de dados e a sequência de parâmetros passados ​​no método. Em Java, o método e os construtores, ambos podem ser sobrecarregados. A sobrecarga de métodos é feita em tempo de compilação e, portanto, é conhecida no polimorfismo em tempo de compilação. A sobrecarga de métodos em uma classe é feita para aumentar a legibilidade dos programas, para que o programador possa escrever uma implementação aprimorada de qualquer método para diferentes cenários.

Considere um cenário em que o programador deseja descobrir o volume de várias figuras geométricas como o cubo, o cilindro e o prisma retangular. Como três deles têm uma fórmula diferente para encontrar o volume e um número diferente de parâmetros. O volume do cubo precisará de apenas um parâmetro, o cilindro terá dois e o prisma retangular terá três parâmetros. Mas o objetivo principal é encontrar apenas o volume dos números. Assim, podemos criar métodos separados de volume para figuras diferentes, mas com o mesmo nome. Dessa maneira, a Sobrecarga de método é usada em cenários práticos.

Como funciona a sobrecarga em Java?

O trabalho de Sobrecarga de método é explicado com um exemplo:

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));
) )

Resultado:

Explicação do código acima: No exemplo acima, precisamos encontrar o volume de 3 figuras geométricas para criar 3 métodos sobrecarregados separados com o mesmo nome que 'volume', mas todos os métodos têm números diferentes de argumentos. Portanto, no método principal, quando o one.volume (10) é executado, o método de volume com um único parâmetro, ou seja, int volume (int side) é chamado. Da mesma forma para os outros métodos de volume, com base no número de argumentos, diferentes métodos são chamados e processados.

Neste exemplo, os métodos são sobrecarregados com base no número de argumentos, mas também podem ser sobrecarregados com base no tipo de dados de parâmetros e na sequência de parâmetros e, portanto, chamados de acordo com isso.

Tipos de sobrecarga em Java

Existem basicamente três maneiras de sobrecarregar métodos em Java:

1. Número de parâmetros

Os métodos Java podem ser sobrecarregados pelo número de parâmetros passados ​​no método. Por exemplo, se o método 1 de volume tiver 2 parâmetros e outro método tiver 3 parâmetros, será apresentado em Sobrecarga com base no 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));
)
)

Resultado:

2. Tipo de dados dos parâmetros

O tipo de dados dos parâmetros transmitidos no método é muito importante e, portanto, os métodos podem ser considerados Sobrecarregados se 2 ou métodos tiverem o mesmo nome, com o mesmo ou o número diferente de argumentos, mas diferentes tipos de dados de parâmetros nos 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));
)
)

Resultado:

3. Sequência de parâmetros

A sobrecarga de método também pode ser feita alterando a sequência de parâmetros de 2 ou mais métodos sobrecarregados. Por exemplo, se os parâmetros de 1 método forem (String x, char y) e o outro método for (char x, String y), mas ambos tiverem o mesmo nome, os 2 métodos acima serão considerados Sobrecarregados por uma sequência 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))
)
)

Resultado:

Explicação do código acima: No exemplo acima, os dois métodos de 'detalhes' são sobrecarregados com base na sequência se parâmetros. Quando a instrução emp.details ('Rajesh', 'A') é chamada, o método que possui os argumentos na ordem (String, char), ou seja, detalhes nulos (nome da String, classificação da char) é chamado e processado.

Regras para sobrecarga em Java

Abaixo estão as regras que devem ser lembradas na sobrecarga de java:

  • A primeira e principal regra da sobrecarga de métodos é que os métodos precisam ter o mesmo nome em uma única classe.
  • Dois ou mais métodos em uma classe podem ser sobrecarregados com base em diferentes assinaturas e a assinatura inclui o número de parâmetros, tipos de dados de parâmetros, a sequência de parâmetros conforme explicado acima.
  • O tipo de retorno de um método não faz parte da assinatura; portanto, a sobrecarga nunca pode ser feita com base no tipo de retorno e, se feito, isso cria o erro em tempo de compilação.

Conclusão

A sobrecarga é um dos conceitos importantes em Java e pode ser feito para métodos e construtores. Existem algumas regras de sobrecarga que devem ser lembradas antes de serem implementadas na programação.

Artigos recomendados

Este é um guia para sobrecarregar em Java. Aqui discutimos algumas regras de sobrecarga que devem ser consideradas antes da implementação de conceitos importantes em Java, métodos e construtores. Você também pode consultar nossos outros artigos relacionados para saber mais -

  1. Sobrecarga em C ++
  2. Ferramentas de implantação Java
  3. Herança em Java
  4. Sobrecarga em PHP
  5. Polimorfismo em Java
  6. Herança em PHP