Soovitatav, 2024

Toimetaja Valik

Erinevus meetodi ülekoormuse ja ülekirjutamise vahel

Meetodi ülekoormus
Meetodi ülekoormus, tuntud ka kui funktsiooni ülekoormus või kompileerimisaja polümorfism, on mõiste, millel on kaks või enam sama nime, kuid samasuguse allkirjaga meetodit. Seda funktsiooni toetavad mitmed programmeerimiskeeled: Ada, C ++, C #, D ja Java.

Näide meetodi ülekoormusest C #

klassi ülekoormuse kuju {float Polygon (int raadius, ujuv pi) {float circleArea = pi * raadius * raadius; } int Polygon (int pikkus, laius) {int rectangleArea = pikkus * laius; } int Polygon (int pool) {int squareArea = külg * külg; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14klassi ülekoormuse kuju {float Polygon (int raadius, ujuv pi) {float circleArea = pi * raadius * raadius; } int Polygon (int pikkus, laius) {int rectangleArea = pikkus * laius; } int Polygon (int pool) {int squareArea = külg * külg; }}

Nagu on näidatud ülaltoodud näites, on meetod "Polygon" ülekoormatud kolm korda erineva allkirjaga, st tüüp või parameetrite arv on erinevad.

Meetod ülekaalukas
Meetodi ülekaal, mida tuntakse ka funktsiooni ülekandmisel või käivitamisaja polümorfismina, on OOP-funktsioon, mis võimaldab lasteklassi omal rakendamisel kasutada vanemklassis määratletud meetodit. Lapseklassi rakendamine tühistab baasklassis oleva meetodi määratluse tingimusel, et lapseklassi meetodil peaks olema sama nimi, allkiri ja tagastamisviis.

Näide meetodist, mis on ülimuslik C #

class Source1 {public void draw () {Console.Writeline ("Ma olen klassis Source1"); }} klass Source2 laiendab Source1 {public void draw () {Console.Writeline ("Ma olen klassis Source2"); }}
1 2 3 4 5 6 7 8 9 10class Source1 {public void draw () {Console. Writeline ("Ma olen klassis1"); }} klass Source2 laiendab Source1 {public void draw () {Console. Writeline ("Olen klassis Source2"); }}

Siin algab Source2 klassi joonistusmeetod Source1 klassis määratletud joonistusmeetodiga.

Erinevus meetodi ülekoormuse ja meetodi ülekandmise vahel

  1. Meetodi ülekandmismeetodil peab olema erinev allkiri. Meetodis peab ülekaalulistel meetoditel olema sama allkiri.
  2. Funktsioonide ülekoormus tähendab, et meetodi käitumisele lisatakse rohkem või rohkem. Funktsioonide ülekandmine on meetodi käitumise täielik muutmine või uuesti määratlemine.
  3. Kompileerimisaja polümorfismi saavutamiseks kasutatakse meetodi ülekoormust; meetodi ülekaalukust kasutatakse jooksva aja polümorfismi saavutamiseks.
  4. Meetodi / funktsiooni ülekoormuse korral teab kompilaator, milline objekt, mis on antud klassi jaoks koostamise ajal määratud, kuid seda teavet ületav meetod ei ole enne käivitamist teada.
  5. Funktsioon Ülekoormamine toimub samas klassis, samas kui ülekirjutamine toimub põhiklassist tuletatud klassis.
Top