"Hello, Amigo! Sasabihin ko sa iyo ang tungkol sa method overloading ."
"Ma-overload mo rin sila?! What a day!"
"Marami kang magagawa sa kanila, ngunit hindi natin ito papasok sa ngayon."
"Ito'y isang kasunduan."
"Ang overloading ay isang napakasimpleng operasyon. Sa totoo lang, hindi ito kahit isang operasyon sa mga pamamaraan, kahit na minsan ay tinutukoy ito ng isang nakakatakot na pangalan: parametric polymorphism ."
Ang bagay na dapat mong tandaan ay ang bawat pamamaraan sa isang klase ay dapat magkaroon ng isang natatanging pangalan.
"Oo alam ko."
"Well, that's not entirely true. I mean, it's not at all true. Ang isang method ay hindi kailangang magkaroon ng unique name. What must be unique is the combination of a method name and the types of its parameters . This combination is also kilala bilang isang lagda ng pamamaraan."
Code | Mga komento |
---|---|
|
Ito ay pinapayagan. Ang dalawang pamamaraan ay may natatanging pangalan. |
|
At ito ay pinapayagan din. Ang dalawang pamamaraan ay may natatanging mga pangalan (pirma). |
|
Ang mga pangalan ng pamamaraan ay natatangi pa rin dito. |
|
Ngunit ito ay hindi pinapayagan. Ang mga pamamaraan ay hindi natatangi, kahit na iba't ibang uri ang ipinapasa. |
|
Ngunit ito ay pinapayagan. Ang mga parameter ng pamamaraan ay natatangi. |
"Nakita ko na yan somewhere."
"Oo. Kapag nag-type ka ng " System.out.println ", ang IntelliJ IDEA ay nagmumungkahi ng ilang dosenang bersyon ng mga paraan ng pag-print na gumagamit ng iba't ibang mga parameter. Tinutukoy lang ng compiler at pagkatapos ay tinatawagan ang kinakailangang paraan batay sa mga uri ng mga parameter na ipinapasa mo."
"Hindi naman ganoon kahirap. Pero hindi ito polymorphism."
"O mas tumpak, hindi ito overriding ng pamamaraan."
Sa pamamagitan ng paraan, gusto kong ituro na ang mga pangalan ng parameter ay hindi nauugnay. Nawala ang mga ito sa panahon ng compilation. Kapag nasunod ang isang paraan, tanging ang pangalan at mga uri ng parameter nito ang malalaman.
GO TO FULL VERSION