Overloading ng pamamaraan

Ang aming bago at kawili-wiling paksa para sa araw na ito ay ang overloading ng pamamaraan . Mag-ingat — hindi dapat malito ang overloading ng pamamaraan sa overriding ng pamamaraan.

Hindi tulad ng overriding, ang overloading ay isang napakasimpleng operasyon. Ito ay talagang hindi isang operasyon sa mga pamamaraan, kahit na kung minsan ay tinutukoy ito ng kakila-kilabot na terminong parametric polymorphism .

Ang isyu dito ay ang lahat ng mga pamamaraan sa loob ng isang klase ay dapat may mga natatanging pangalan. Well, hindi iyon ganap na tumpak. Well, mas tumpak, hindi iyon tumpak. Ang pangalan ng pamamaraan ay hindi kailangang maging natatangi. Ang dapat na natatangi ay ang pagsasama ng pangalan ng pamamaraan at ang mga uri ng mga parameter ng pamamaraan. Ang unyon na ito ay kilala bilang lagda ng pamamaraan

Mga halimbawa:

Code Paglalarawan
public void print();
public void print2();
Ito ay pinapayagan. Ang dalawang pamamaraan ay may natatanging mga pangalan.
public void print();
public void print(int n);
At ito rin. Ang dalawang pamamaraan ay may natatanging mga pangalan (pirma).
public void print(int n, int n2);
public void print(int n);
Ang mga pamamaraan ay natatangi pa rin
public int print(int a);
public void print(int n);
Ngunit ito ay hindi pinapayagan . Ang mga pamamaraan ay hindi natatangi . Kahit na ibinabalik nila ang iba't ibang uri.
public int print(int a, long b);
public long print(long b, int a);
Ngunit magagawa mo ito . Ang mga parameter ng pamamaraan ay natatangi

Kasama sa lagda ang pangalan ng pamamaraan at ang mga uri ng parameter . Hindi kasama dito ang uri ng pagbabalik ng pamamaraan at mga pangalan ng parameter . Ang isang klase ay hindi maaaring magkaroon ng dalawang pamamaraan na may parehong mga lagda - hindi malalaman ng compiler kung alin ang tatawagan.

Hindi mahalaga ang mga pangalan ng parameter , dahil nawawala ang mga ito sa panahon ng compilation. Kapag ang isang pamamaraan ay naipon, tanging ang pangalan at mga uri ng parameter nito ang malalaman. Ang uri ng pagbabalik ay hindi nawala, ngunit ang resulta ng pamamaraan ay hindi kailangang italaga sa anumang bagay, kaya hindi rin ito kasama sa lagda.

Ayon sa mga prinsipyo ng OOP , ang polymorphism ay nagtatago ng iba't ibang mga pagpapatupad sa likod ng isang interface. Kapag tinawag natin ang System.out.println()pamamaraan, halimbawa, iba't ibang mga pamamaraan ang tinatawag depende sa kung aling mga argumento ang ipinasa. Ito ay polymorphism sa pagkilos.

Iyon ang dahilan kung bakit ang iba't ibang mga pamamaraan na may magkaparehong mga pangalan na nakapaloob sa parehong klase ay itinuturing na isang mahinang anyo ng polymorphism.