Kľúčový rozdiel - preťaženie a prepísanie v Jave
Objektovo orientované programovanie (OOP) je hlavnou paradigmou vo vývoji softvéru. Jedná sa o metodiku návrhu programu pomocou tried a objektov. Trieda je modrotlač. Opisuje, čo by malo obsahovať objekt. Definuje vlastnosti alebo atribúty a metódy, z ktorých by sa mal objekt skladať. Preto je objekt inštanciou triedy. Tieto objekty komunikujú s inými objektmi. Jedným z hlavných konceptov OOP je polymorfizmus. Je to schopnosť objektu správať sa viacerými spôsobmi. Polymorfizmus je rozdelený do dvoch častí, ktoré sú preťažené a prevažujúce. Tento článok pojednáva o rozdieloch medzi týmito dvoma jazykmi v prostredí Java. Kľúčovým rozdielom medzi preťažením a prepísaním v Jave je ten, že Overloading je schopnosť vytvárať viac metód rovnakého názvu s rôznymi implementáciami a Overriding je poskytnúť implementáciu pre metódu podtriedy, ktorá už v nadtriede existuje.
OBSAH
1. Prehľad a kľúčový rozdiel
2. Čo je to preťaženie v Jave
3. Čo je to prepísanie v Jave
4. Podobnosti medzi preťažením a prepísaním v Jave
5. Porovnanie vedľa seba - preťaženie vs preplnenie v Jave vo forme tabuľky
6. Zhrnutie
Čo je to preťaženie v Jave?
Preťaženie je schopnosť vytvárať viac metód rovnakého názvu s rôznymi implementáciami. Prečítajte si nižšie uvedený kód Java.
Obrázok 01: Program Java, ktorý vysvetľuje preťaženie s rôznym počtom argumentov
Podľa vyššie uvedeného programu trieda A obsahuje dve metódy s rovnakým názvom. Metóda prvého súčtu má dva parametre. Metóda druhého súčtu má tri parametre. Pri vytváraní objektu typu A a volaní súčtu (2,3) bude volať metódu súčtu s dvoma parametrami, ktoré sú sum (int a, int b) a vráti 5. Pri vytváraní objektu typu A a volaní súčtu (2, 3,4), zavolá druhú metódu súčtu s tromi parametrami, ktorou je súčet (int a, int b, int c) a vráti 9.
Názov metódy je rovnaký, ale počet parametrov je odlišný. Je možné pozorovať, že rovnaký objekt sa správa odlišne. Tento koncept je známy ako preťaženie. Tiež sa označuje ako statická väzba alebo kompilácia časového polymorfizmu.
Môžu byť tiež preťažené rôznymi typmi údajov. Prečítajte si nižšie uvedený kód Java.
Obrázok 02: Program Java, ktorý vysvetľuje preťaženie s rôznym počtom argumentov
Podľa vyššie uvedeného programu trieda A pozostáva z dvoch metód s rovnakým názvom. Metóda sum (int a, int b) prijíma dve celočíselné hodnoty. Súčet (dvojnásobok a dvojnásobok b) dostane dve dvojnásobné hodnoty. Pri vytváraní objektu typu A a volaní súčtu (2,3) bude volať súčet (int a, int b) a vráti hodnotu 5. Pri volaní súčtu (3,4, 5,6) bude volať súčet (double a double b) a vráti hodnotu 9.0. V tomto príklade majú metódy rovnaký názov, ale iný typ premenných. To tiež preťažuje.
Čo je prepísanie v Jave?
V Jave je možné vytvárať podtriedy s už existujúcimi triedami. Namiesto vytvárania novej triedy od začiatku je možné použiť vlastnosti a metódy už existujúcej triedy. Existujúca trieda je nadtrieda a odvodená trieda je podtrieda. Keď podtrieda poskytuje implementáciu pre metódu, ktorá je už v nadtriede, je známa ako prepísanie. Prečítajte si nižšie uvedený program Java.
Obrázok 03: Program Java na prepísanie
Podľa vyššie uvedeného programu má trieda A metódu display (). Trieda B sa rozširuje z triedy A, takže vlastnosti a metódy triedy A sú prístupné pre triedu B. Trieda B má metódu display () so špecifickou implementáciou. Pri vytváraní objektu typu A a volaní metódy zobrazenia poskytne výstup B. Aj keď má trieda A metódu zobrazenia, je prepísaná metódou zobrazenia triedy B. Podtrieda implementuje metódu, ktorá už v nadtriede existuje.
Tento koncept je typom polymorfizmu a je známy ako prevažujúca. Nazýva sa tiež ako neskorá väzba, dynamická väzba, runtime polymorfizmus.
Aké sú podobnosti medzi preťažením a prepísaním v Jave?
- Obidva typy polymorfizmu.
- V prípade preťaženia a prepísania majú metódy rovnaký názov.
Aký je rozdiel medzi preťažením a prepísaním v Jave?
Rozdielny článok v strede pred tabuľkou
Preťaženie vs prepísanie v Jave |
|
Preťaženie v Jave je schopnosť vytvárať viac metód rovnakého názvu s rôznymi implementáciami. | Prepísanie v jazyku Java poskytuje špecifickú implementáciu v metóde podtriedy pre metódu, ktorá už v nadtriede existuje. |
Parametre | |
Pri preťažení majú metódy rovnaký názov, ale odlišný počet parametrov alebo iný typ parametrov. | Pri prepísaní majú metódy rovnaký názov a parametre musia byť rovnaké. |
Témy | |
V triede dochádza k preťaženiu. | K prepísaniu dôjde v rámci dvoch tried, ktoré majú dedičský vzťah. |
Synonymá | |
Preťaženie sa nazýva kompilovaný časový polymorfizmus. | Prepísanie sa nazýva polymorfizmus doby behu. |
Zhrnutie - Preťaženie a prepísanie v Jave
Polymorfizmus je hlavným konceptom v objektovo orientovanom programovaní. Poskytuje objektu schopnosť správať sa viacerými spôsobmi. Môže to byť buď preťaženie alebo prepísanie. Preťaženie je polymorfizmus v čase kompilácie a prvoradý je polymorfizmus za behu. Sú užitočné pri vývoji softvérových aplikácií. Rozdiel medzi prepísaním a preťažením spočíva v tom, že preťaženie predstavuje schopnosť vytvárať viac metód rovnakého názvu s rôznymi implementáciami a prepísanie poskytuje konkrétnu implementáciu v metóde podtriedy pre metódu, ktorá už v nadtriede existuje. V Jave je možné implementovať preťaženie aj prepísanie.
Stiahnite si súbory Java Overloading vs Overriding v Jave
Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ho na offline účely podľa citačnej poznámky. Stiahnite si tu PDF verziu. Rozdiel medzi preťažením a preložením v Jave