Erinevus Java ülekoormuse ja alistamise vahel

Sisukord:

Erinevus Java ülekoormuse ja alistamise vahel
Erinevus Java ülekoormuse ja alistamise vahel

Video: Erinevus Java ülekoormuse ja alistamise vahel

Video: Erinevus Java ülekoormuse ja alistamise vahel
Video: Android 101 от Фреда Виджайи 2024, Juuli
Anonim

Peamine erinevus – Java ülekoormamine vs alistamine

Objektorienteeritud programmeerimine (OOP) on tarkvaraarenduse peamine paradigma. See on klasside ja objektide abil programmi kujundamise metoodika. Klass on plaan. See kirjeldab, mida objekt peaks sisaldama. See määratleb omadused või atribuudid ja meetodid, millest objekt peaks koosnema. Seetõttu on objekt klassi eksemplar. Need objektid suhtlevad teiste objektidega. Üks peamisi OOP-i kontseptsioone on polümorfism. See on objekti võime käituda mitmel viisil. Polümorfism jaguneb kaheks osaks, mis on ülekoormavad ja ülekaalukad. Selles artiklis käsitletakse nende kahe erinevust Javas. Peamine erinevus Javas ülekoormamise ja alistamise vahel on see, et ülekoormamine on võimalus luua mitu erineva teostusega sama nimega meetodit ja Alistamine on pakkuda rakendust alamklassi meetodi jaoks, mis on juba superklassis olemas.

Mis on Java ülekoormamine?

Ülekoormamine on võimalus luua mitu erineva teostusega sama nimega meetodit. Vaadake allolevat Java koodi.

Erinevus Java ülekoormuse ja alistamise vahel
Erinevus Java ülekoormuse ja alistamise vahel
Erinevus Java ülekoormuse ja alistamise vahel
Erinevus Java ülekoormuse ja alistamise vahel

Joonis 01: Java programm, mis selgitab ülekoormamist erineva arvu argumentidega

Vastav alt ül altoodud programmile sisaldab klass A kahte sama nimega meetodit. Esimesel summameetodil on kaks parameetrit. Teisel summameetodil on kolm parameetrit. A-tüüpi objekti loomisel ja sum(2, 3) kutsumisel kutsub see välja summeetodi kahe parameetriga, mis on sum(int a, int b) ja tagastab 5. A-tüüpi objekti loomisel ja sum(2) väljakutsumisel, 3, 4), kutsub see välja teise summameetodi kolme parameetriga, mis on summa(int a, int b, int c) ja tagastab 9.

Meetodi nimi on sama, kuid parameetrite arv on erinev. Võib täheldada, et sama objekt käitub erinev alt. Seda mõistet nimetatakse ülekoormamiseks. Seda nimetatakse ka staatiliseks sidumiseks või kompileerib aja polümorfismiks.

Samuti võib olla ülekoormatud erinevate andmetüüpidega. Vaadake allolevat Java koodi.

Erinevus Java ülekoormuse ja alistamise vahel_Joonis 02
Erinevus Java ülekoormuse ja alistamise vahel_Joonis 02
Erinevus Java ülekoormuse ja alistamise vahel_Joonis 02
Erinevus Java ülekoormuse ja alistamise vahel_Joonis 02

Joonis 02: Java programm, mis selgitab ülekoormamist erineva arvu argumentidega

Vastav alt ül altoodud programmile koosneb klass A kahest samanimelisest meetodist. Sum(int a, int b) meetod saab kaks täisarvu väärtust. Summa (double a double b) saab kaks topeltväärtust. A-tüüpi objekti loomisel ja sum(2, 3) väljakutsumisel kutsub see välja sum(int a, int b) ja tagastab väärtuse 5. Sum(3.4, 5.6) väljakutsumisel kutsub see välja sum(double a double b) ja tagastab väärtuse 9,0. Selles näites on meetoditel sama nimi, kuid erinevat tüüpi muutujad. See on ka ülekoormamine.

Mis on Javas alistamine?

Javas on võimalik alamklasse ehitada juba olemasolevate klassidega. Selle asemel, et luua uus klass algusest peale, on võimalik kasutada juba olemasoleva klassi atribuute ja meetodeid. Olemasolev klass on ülemklass ja tuletatud klass on alamklass. Kui alamklass pakub meetodi rakendust, mis on juba ülemklassis, nimetatakse seda alistamiseks. Vaadake allolevat Java programmi.

Peamised erinevused Java ülekoormuse ja alistamise vahel
Peamised erinevused Java ülekoormuse ja alistamise vahel
Peamised erinevused Java ülekoormuse ja alistamise vahel
Peamised erinevused Java ülekoormuse ja alistamise vahel

Joonis 03: Java programm alistamiseks

Vastav alt ül altoodud programmile on klassil A meetod display(). Klass B laieneb klassist A, nii et klassi A omadused ja meetodid on klassile B juurdepääsetavad. Klassil B on meetod display() konkreetse teostusega. A-tüüpi objekti loomisel ja kuvamismeetodi kutsumisel annab see väljundi B. Kuigi klassil A on kuvamismeetod, tühistatakse see klassi B kuvamismeetodi puhul. Alamklass rakendab meetodit, mis on juba superklassis olemas.

See kontseptsioon on teatud tüüpi polümorfism ja seda nimetatakse ülimuslikuks. Seda nimetatakse ka hiliseks sidumiseks, dünaamiliseks sidumiseks, käitusaegseks polümorfismiks.

Millised on Java ülekoormuse ja alistamise sarnasused?

  • Mõlemad on polümorfismi tüübid.
  • Ülekoormamisel ja alistamisel on meetoditel sama nimi.

Mis vahe on Java ülekoormusel ja alistamisel?

Ülekoormamine vs alistamine Javas

Java ülekoormamine on võimalus luua mitu erineva teostusega sama nimega meetodit. Java alistamine pakub alamklassi meetodis spetsiifilist teostust meetodi jaoks, mis on juba superklassis olemas.
Parameetrid
Ülekoormuse korral on meetoditel sama nimi, kuid erinev arv parameetreid või erinevat tüüpi parameetreid. Alistamisel on meetoditel sama nimi ja parameetrid peavad olema samad.
Teemad
Klassi sees toimub ülekoormus. Alistamine toimub kahes klassis, millel on pärimissuhe.
Sünonüümid
Ülekoormust nimetatakse kompileeritud aja polümorfismiks. Alistamist nimetatakse käitusaja polümorfismiks.

Kokkuvõte – Java ülekoormamine vs alistamine

Polümorfism on objektorienteeritud programmeerimise põhikontseptsioon. See annab objektile võimaluse mitmel viisil käituda. See võib olla kas ülekoormus või ülekoormus. Ülekoormus on kompileerimisaegne polümorfism ja alistamine käitusaegne polümorfism. Need on kasulikud tarkvararakenduste arendamisel. Erinevus alistamise ja ülekoormamise vahel seisneb selles, et ülekoormus on võimalus luua mitu sama nimega meetodit erinevate rakendustega ja alistamine pakub alamklassi meetodis konkreetset teostust meetodi jaoks, mis on juba superklassis olemas. Javas on võimalik rakendada nii ülekoormust kui ka alistamist.

Laadi alla PDF-i ülekoormus vs alistamine Javas

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevus Java ülekoormuse ja alistamise vahel

Soovitan: