Ajánlott, 2024

Szerkesztő Választása

A módszer túlterhelése és felülbírálása közötti különbség

Módszer túlterhelés
A módszer túlterhelés, más néven Funkció-túlterhelés vagy Kompilációs idő polimorfizmus, olyan fogalom, amelynek során két vagy több azonos nevű, ugyanolyan hatókörű, de eltérő aláírású módszer van. Számos programozási nyelv támogatja ezt a funkciót: Ada, C ++, C #, D és Java.

Példa a C # túlterhelés módjára

class OverloadShapes {float Polygon (int sugár, float pi) {float circleArea = pi * sugár * sugár; } int Poligon (int hossz, int szélesség) {int rectangleArea = hossz * szélesség; } int Poligon (int oldal) {int squareArea = oldalsó * oldal; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14class OverloadShapes {float Polygon (int sugár, float pi) {float circleArea = pi * sugár * sugár; } int Poligon (int hossz, int szélesség) {int rectangleArea = hossz * szélesség; } int Poligon (int oldal) {int squareArea = oldalsó * oldal; }}

Amint az a fenti példában látható, a „Poligon” módszer 3-szor túlterhelt különböző módszer aláírással, azaz a paraméterek típusa vagy száma különbözik.

Módszer felülírása
A módszer felülbírálása, más néven Funkció felülírása vagy Futtatási idő polimorfizmus, egy OOP funkció, amely lehetővé teszi a gyermekosztály számára, hogy saját végrehajtását biztosítsa a szülő osztályban meghatározott módszerhez. A gyermekosztályban történő implementáció felülbírálja a bázis osztályban lévő módszer meghatározását, feltéve, hogy a gyermekosztályban alkalmazott módszernek azonos nevet, aláírást és visszatérési módot kell használnia.

Példa a C # -nál felülbíráló módszerre

class Source1 {public void draw () {Console.Writeline ("Az 1. osztályban vagyok"); }} Class Source2 kiterjeszti a Source1 {public void draw () {Console.Writeline ("A Source2 osztályban"); }}
1 2 3 4 5 6 7 8 9 10class Source1 {public void draw () {Konzol. Writeline ("Én vagyok a Source1 osztályban"); }} Class Source2 kiterjeszti a Source1 {public void draw () {Console. Writeline ("Én vagyok a Source2 osztályban"); }}

Itt a Source2 osztályban lévő rajzolási módszer felülbírálja a Source1 osztályban definiált rajzolási módszert.

A módszer túlterhelése és a módszer felülbírálása közötti különbség

  1. A módszer túlterhelésének módszereinek eltérő aláírással kell rendelkezniük. Módszerben az felülíró módszereknek azonos aláírással kell rendelkezniük.
  2. A függvény túlterhelésének célja, hogy „hozzáadja” vagy „bővítse” a módszer viselkedését. A funkció felülbírálása az, hogy teljesen megváltoztassa vagy újrafogalmazza a módszer viselkedését.
  3. A módszer túlterhelését a fordítási idő polimorfizmusának elérésére használjuk; A módszer felülbírálását a futási idő polimorfizmusának elérésére használjuk.
  4. A módszertan / funkció túlterhelés során a fordító tudja, hogy melyik objektum melyik osztályhoz tartozik az összeállítás idején, de az információt felülíró módszerben a runtime-ig nem ismert.
  5. A függvény túlterhelése ugyanabban az osztályban történik, míg a felülbírálás egy osztályból származik.
Top