Polymorphism sa Java: Paano Mag-overload o Mag-override ng Mga Paraan

Polymorphism sa Java: Paano Mag-overload o Mag-override ng Mga Paraan

Ang pamamaraang overloading at overriding ay ang dalawang paraan kung saan ipinakita ng Java ang polymorphism. Ang Polymorphism ay nagmula sa isang kombinasyon ng dalawang salitang Griyego: 'poly' na nangangahulugang marami at 'morph' na form na nangangahulugang. Samakatuwid, ang polymorphism ay nagbibigay-daan sa mga pamamaraan upang kumuha ng maraming anyo.





Sundin ang patnubay na ito upang malaman kung paano mag-overload o mag-override ng mga pamamaraan sa Java.





Ano ang Pag-o-overload ng Paraan?

Ang 'overloading ng pamamaraan' ay tumutukoy sa pagtukoy ng iba't ibang mga pamamaraan sa isang klase na may parehong pangalan. Ang mga pamamaraan ay dapat magkaroon ng iba't ibang mga lagda. Ang isang lagda ng pamamaraan ay ang kumbinasyon ng pangalan ng isang pamamaraan at listahan ng parameter. Hindi kasama rito ang uri ng pagbabalik.





Alam ng tagatala kung aling pamamaraan ang gagamitin sa pamamagitan ng pag-check sa uri, bilang ng mga parameter, at pagkakasunud-sunod kung saan inilalagay ang mga ito.

Kaugnay: Paggalugad ng Pamana sa Wika ng Programming ng Java



Ang labis na pag-load ay nagpapakita ng compile-time polymorphism. Ang compile-time polymorphism ay nangangahulugang ang Java compiler ay nagbubuklod ng isang bagay sa pagpapaandar nito sa runtime. Sinusuri ng tagatala ang mga lagda ng pamamaraan upang makamit ito.

Ang ganitong uri ng polymorphism ay kilala rin bilang static o maagang nagbubuklod.





Tingnan ang halimbawa ng overloading ng pamamaraan sa ibaba:

class Arithmetic{
int cube(int x){
return x*x*x;
}
double cube(double x){
return x*x*x;
}
float cube(float x){
return x*x*x;
}
public static void main(String[] args){
Arithmetic myMultiplication = new Arithmetic();
System.out.println('The cube of 5 is ' + myMultiplication.cube(5));
System.out.println('The cube of 5.0 is ' + myMultiplication.cube(5.0));
System.out.println('The cube of 0.5 is ' + myMultiplication.cube(0.5));
}
}

Output:





The cube of 5 is 125
The cube of 5.0 is 125.0
The cube of 0.5 is 0.125

Ipinapakita ng code sa itaas kung paano ka makakakuha ng isang kubo ng iba't ibang mga uri ( int , doble , lumutang ) gamit ang parehong pamamaraan.

Pangkalahatan, ginagamit ang overloading ng pamamaraan upang tukuyin ang mga katulad na pamamaraan na may iba't ibang mga uri ng parameter.

Ano ang Overriding ng Paraan?

Ito ay tumutukoy sa isang iba't ibang pagpapatupad ng isang pamamaraan sa isang subclass. Ang pamamaraan ay dapat na natukoy sa magulang na klase.

Ang pamamaraang overriding (ibig sabihin, ang isa sa subclass) ay dapat magkaroon ng parehong lagda ng pamamaraan tulad ng sa superclass. Ang uri ng pagbabalik ng overriding na pamamaraan ay maaaring pareho o isang subtype ng isa sa superclass.

Ang overriding ay karaniwang ginagamit upang isama ang isang tukoy na pagpapatupad ng pag-uugali ng isang bagay sa subclass.

class Account{
public void message() {
System.out.println('
Thank you for opening an account with us!');
}
public static void main(String args[]) {
Account myAccount = new Account();
Savings mySavings = new Savings();
FixedDeposit myFixedDepo = new FixedDeposit();
myAccount.message();
mySavings.message();
myFixedDepo.message();
}
}
class Savings extends Account {
public void message() {
System.out.println('
Thank you for opening a Savings account with us!');
}
}
class FixedDeposit extends Account {
public void message() {
System.out.println('
Thank you for opening a Fixed Deposit account with us!');
}
}

Output:

Thank you for opening an account with us!
Thank you for opening a Savings account with us!
Thank you for opening a Fixed Deposit account with us!

Ipinapakita ng halimbawa sa itaas kung paano ang pamamaraan mensahe () ay na-override sa mga subclass Pagtipid at FixedDeposit . Ipapakita ang iba't ibang mga mensahe para sa mga may-ari ng bank account na may isang Savings account at ang mga may Fixed Deposit account.

Kaugnay: Ano ang Kailangan Mong Malaman Tungkol sa Paggamit ng Mga String sa Java

Mahalaga rin na tandaan na ang pag-override ng pamamaraan ay nagpapakita ng runtime polymorphism o pagpapadala ng pabago-bagong pamamaraan. Nangangahulugan ito na ang pamamaraang tatawagin ay nalulutas sa runtime kaysa sa compilation.

Upang maiwasan ang isang paraan na ma-override, gamitin ang keyword panghuli .

final void message (){
System.out.println('
Thank you for opening an account with us!');
}

Kapag tinangka ng isang subclass na i-override ito, magaganap ang isang error sa pagtitipon.

Sa isip, ang lahat ng mga pamamaraan na tinatawag sa loob ng isang tagapagbuo ay dapat panghuli . Ito ay upang maiwasan ang anumang hindi inaasahang mga pagbabago na maaaring sanhi ng mga subclass.

Minsan, maaaring kailanganin mong i-access ang isang override na pamamaraan sa loob ng overriding na pamamaraan. Maaari mong gamitin ang keyword sobrang super sinundan ng dot operator ( . ) at ang pangalan ng pamamaraan sa naturang kaso.

Isaalang-alang ang superclass Hayop .

class Animal{
public void move() {
System.out.println('
I can move.');
}
}

Nasa ibaba ang isang subclass, tinawag Isda , na overrides ilipat () :

class Fish extends Animal {
public void move() {
System.out.println('
I can swim.');
super.move();
}
public static void main(String args[]){
Fish Tilapia = new Fish();
Tilapia.move();
}
}

Output:

paano i-sumibak device na nakakonekta sa aking wifi
I can swim.
I can move.

Kapag nag-o-override ng isang pamamaraan, kailangan mo ring maging maingat sa ginamit na modifier ng pag-access. Ang modifier sa subclass ay dapat magkaroon ng parehong antas ng visibility o mas mataas kaysa sa base class. Halimbawa, kung ang pamamaraan sa batayang klase ay tinukoy bilang protektado , pagkatapos ay ang overriding na pamamaraan ay maaaring maging alinman protektado o pampubliko .

Simpleng Code Sa Polymorphism

Ang pamamaraang overriding at overloading ay mahalaga para sa pagpapasimple ng code, at ang simpleng code ay mahusay na kasanayan.

Bakit? Mag-isip ng isang kumplikadong codebase na may maraming mga in at out kaysa sa Grand Central Station. Ngayon isipin ang isang nagwawasak na bug ay nagsisimulang sirain ang iyong pagsusumikap sa harap mismo ng iyong mga mata. Kailangan mong ihiwalay ang pinagmulan ng impeksyon, at kailangan mong gawin ito ng mabilis.

Good luck, hindi mo pinasimple ang iyong code ... Ngayon ay makakakuha ka ng isang tunay na aralin sa cryptography. Ang paggamit ng mga mabisang istraktura ng data at paggawa ng magagawa mo upang paikliin ang code (tulad ng pag-iingat sa DRY) ang iyong pinakamahusay na depensa laban sa isang sitwasyong tulad nito.

Susunod sa iyong listahan ng pag-aaral ng Java ay dapat na gumagana sa mga arrays. Mahalaga ang mga ito ng mga istraktura ng data upang mag-imbak ng mga batch ng mga puntos ng data.

Magbahagi Magbahagi Mag-tweet Email Paano Lumikha at Magsagawa ng Mga Operasyon sa Mga Array sa Java

Pag-aaral ng Java? Hayaan ang mga arrays na hawakan ang iyong data nang madali.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Java
  • Mga Tutorial sa Coding
Tungkol sa May-akda Jerome Davidson(22 Mga Artikulo Na-publish)

Si Jerome ay isang Staff Writer sa MakeUseOf. Saklaw niya ang mga artikulo sa Programming at Linux. Siya rin ay isang taong mahilig sa crypto at palaging pinapanatili ang mga tab sa industriya ng crypto.

Higit pa Mula kay Jerome Davidson

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe