- - Туториал: Преоптерећење метода у Јави кодом

Туториал: Преоптерећење метода у Јави кодом

Од сада сте упознати са инстанцирањеминтерне класе на Јави, можемо говорити о полиморфизму и преоптерећењу метода. Полиморфизам је способност Јава објекта да једнолично реагује и постигне специфично понашање на позиве метода истог назива, али са различитим имплементацијама. У Јави се концепт полиморфизма може постићи на више начина. Ево нашег Јава уџбеника са кодом за преоптерећење метода.

Јава Туториал са кодом за преоптерећење метода.

Шта је преоптерећење метода

У Јави је могуће дефинисати две или вишеметоде унутар исте класе које имају исти назив. Међутим, њихове декларације параметара требале би бити другачије. Кажу се да су ове врсте преоптерећене, а поступак се назива преоптерећењем метода.

Метода преоптерећења подржава полиморфизам јер је један од начина да Јава имплементира парадигму „један интерфејс, више метода“.

Својства

  • У класи, концепт преоптерећења методе не дозвољава спољном кориснику да буде свестан интерне обраде система.
  • Методе преоптерећења разликују се по броју параметара или врсти параметара или редослиједу параметара.
  • Преоптерећене методе се решавају у следећим редоследима:
    1. Број параметара.
    2. Врста параметара.
    3. Секвенца параметара.

На основу ових метода се позива у складу са тим да се врати жељени излаз.

  • Метода Преоптерећење омогућава кориснику да постигне оно саставити полиморфизам времена.
  • Преоптерећене методе могу имати исте или различите врсте повратка.

Јава програм за преоптерећење метода

class Figure{
/* Calculate Area of Square */
void area(double length){
System.out.println("Area of Square is: "+Math.pow(length,2));
}
/* Calculate Area of Rectangle */
void area(double length,double breadth){
System.out.println("Area of Rectangle is: "+(length*breadth));
}
/* Calculate Area of Cylinder */
void area(double radius,int height){
System.out.println("Area of Cylinder is: "+(2*3.14*Math.pow(radius,2)*height));
}
/* Calculate Area of Cube */
void area(int arms){
System.out.println("Area of Cube is: "+(6*arms*arms));
}
}
class CalculateArea{
public static void main(String args[]){
Figure fig = new Figure();
fig.area(5.25);
fig.area(4.5,5.5);
fig.area(2);
fig.area(3.2,6);
}
}

Резултат преоптерећења метода.

Јава Туториал са кодом за преоптерећење метода.

Објашњење Јава Цоде & Оутпута

Овде унутар класе Слика () је преоптерећенометода, која има исто име са различитим имплементацијама, тј. парадигмом „један интерфејс, више метода“. Лако можете установити да се иста метода користи за обављање различитих операција, тј. Израчунавање подручја различитих геометријских подручја на основу броја / типа / секвенце прошао параметара и произвести жељени излаз.

Зазивање метода може бити било ког налога. Као подручје методе () израчунати површину коцке која се позива пре позивања подручја методе () за израчунавање површине цилиндра.

У програму смо такође позвали једну статичку методу пов () класе Матх која је члан јава.ланг пакета за израчунавање квадрата било ког броја.

Фласх упаљен

Током решавања преоптерећених метода Јава запошљавањегове аутоматске претворбе типа само ако није пронађено тачно подударање. Као што видите испод, класа Оверлоад не дефинише дисплаи (инт), већ има дефинисан приказ (доубле).

Стога, када се приказ () зове сааргумент целог броја унутар ОверлоадДемо, није пронађена ниједна метода подударања. Међутим, Јава може аутоматски претворити цео број у двоструки и та конверзија се може користити за решавање позива. Стога, након што се не нађе дисплеј (инт), Јава повисује „и“ да удвостручи, а затим прикаже приказ (двоструко). Наравно, да је дефинисан „инт)“, то би било позвано.

class Overload {
// display method with no parameters
void display() {
System.out.println("No parameters");
}
// Overload display for two integer parameters.
void display(int a, int b) {
System.out.println("a and b: " + a + " " + b);
}
// overload display for a double parameter
void display(double a) {
System.out.println("a: " + a);
}
}
class OverloadDemo {
public static void main(String args[]) {
Overload overload = new Overload();
int i = 88;
ob.display();
ob.display (10, 20);
ob.display (i); // this will invoke display(double)
ob.display (123.2); // this will invoke display(double)
}
}

Н.Б: Ова конверзија важи за нижу врсту података (нпр. Инт) за вишу дататипе (нпр. Двоструку) претворбу, а не за обрнуту (двоструку до инт).

У следећем туториалу ћемо научити о преоптерећењу Цонструцтор-а на Јави.

Коментари