Introducere în suprasarcină în Java

Java este un limbaj de programare orientat pe obiecte și urmărește conceptele de bază ale OOP-urilor. Supraîncărcarea este unul dintre conceptele importante din Java. Supraîncărcarea permite diferite metode având același nume într-o clasă, dar cu semnături diferite. Semnatura include numărul de parametri, tipul de parametri și secvența de parametri trecuți în metodă. În Java, metoda și constructorii, ambele pot fi supraîncărcate. Supraîncărcarea metodelor se face în timp de compilare și, prin urmare, este cunoscută la polimorfismul compila-time. Supraîncărcarea metodelor dintr-o clasă se face pentru a crește lizibilitatea programelor, astfel încât programatorul să poată scrie o implementare îmbunătățită a oricărei metode pentru diferite scenarii.

Luați în considerare un scenariu în care programatorul vrea să afle volumul diferitelor figuri geometrice precum cubul, cilindrul și prisma dreptunghiulară. Deoarece trei dintre ele au o formulă diferită pentru a găsi volumul și au un număr diferit de parametri. Volumul cubului va avea nevoie de un singur parametru, cilindrul va lua doi, iar prisma dreptunghiulară va lua trei parametri. Dar scopul principal este de a găsi doar volumul de cifre. Deci putem crea metode de volum separate pentru figuri diferite, dar cu același nume. În acest fel, supraîncărcarea metodei este utilizată în scenarii practice.

Cum funcționează supraîncărcarea în Java?

Utilizarea supraîncărcării metodei este explicată cu un exemplu:

Cod:

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

ieşire:

Explicația codului de mai sus: În exemplul de mai sus, trebuie să găsim volumul de 3 figuri geometrice, astfel încât am creat 3 metode supraîncărcate separate cu același nume ca „volum”, dar toate metodele au un număr diferit de argumente. Deci, în metoda principală, atunci când este rulat one.volume (10), atunci se apelează la metoda de volum care are un singur parametru, adică volum int (partea int). În mod similar pentru celelalte metode de volum, pe baza numărului de argumente, sunt apelate și procesate diferite metode.

În acest exemplu, metodele sunt supraîncărcate pe baza numărului de argumente, dar pot fi, de asemenea, supraîncărcate pe baza tipului de date a parametrilor și a secvenței de parametri și, prin urmare, numite în funcție de aceasta.

Tipuri de supraîncărcare în Java

Există practic 3 moduri de supraîncărcare a metodei în Java:

1. Număr de parametri

Metodele Java pot fi supraîncărcate după numărul de parametri trecuți în metodă. De exemplu, dacă metoda 1 a volumului are 2 parametri și o altă metodă are 3 parametri, atunci este supusă supraîncărcării pe baza numărului de parametri.

Cod:

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

ieşire:

2. Tip de date al parametrilor

Tipul de date al parametrilor trecuți în metodă contează foarte mult și, prin urmare, metodele pot fi considerate supraîncărcate dacă 2 sau metode au același nume având același sau un număr diferit de argumente, dar tipuri de date diferite de parametri în diferite metode.

Cod:

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

ieşire:

3. Secvența parametrilor

Metoda Supraîncărcarea se poate face și prin schimbarea secvenței parametrilor a 2 sau mai multe metode supraîncărcate. De exemplu, dacă parametrii unei metode sunt (String x, char y) și cealaltă metodă este (char x, String y), dar ambele având același nume, cele 2 metode de mai sus sunt considerate a fi supraîncărcate de o altă secvență de parametrii.

Cod:

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

ieşire:

Explicația codului de mai sus: În exemplul de mai sus, ambele metode de „detalii” sunt supraîncărcate pe baza secvenței, dacă sunt parametri. Atunci când declarația emp.details ('Rajesh', 'A') este apelată atunci se apelează și prelucrează metoda care are argumentele în ordinea (String, char), adică detalii de void (numele șirului, rangul char).

Reguli pentru supraîncărcare în Java

Mai jos sunt regulile care trebuie amintite în cazul supraîncărcării java:

  • Prima și cea mai importantă regulă a supraîncărcării metodei este aceea că metodele trebuie să aibă același nume într-o singură clasă.
  • Două sau mai multe metode dintr-o clasă pot fi supraîncărcate pe baza semnăturilor diferite, iar semnătura include numărul de parametri, tipurile de date de parametri, secvența de parametri, așa cum este explicat mai sus.
  • Tipul de retur al unei metode nu este o parte a semnăturii, astfel încât supraîncărcarea nu se poate face niciodată pe baza tipului de retur și, dacă se face, aceasta creează eroarea de compilare.

Concluzie

Supraîncărcarea este unul dintre conceptele importante în Java și poate fi realizată atât pentru metode, cât și pentru constructori. Există câteva reguli de supraîncărcare care ar trebui să fie luate în considerare înainte de a le implementa în programare.

Articole recomandate

Acesta este un ghid pentru supraîncărcare în Java. Aici discutăm câteva reguli de supraîncărcare care ar trebui luate în considerare înainte de implementarea conceptelor importante în Java, metode și constructori. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Supraîncărcare în C ++
  2. Instrumente de implementare Java
  3. Moștenire în Java
  4. Supraîncărcarea în PHP
  5. Polimorfism în Java
  6. Moștenire în PHP