Kľúčový rozdiel : Preťaženie znamená, že má dve metódy tej istej triedy s rovnakým názvom a rôznymi typmi parametrov, zatiaľ čo preradené prostriedky majú dve rôzne metódy v rovnakej triede s rovnakými typmi parametrov, ale s rôznymi implementáciami.
Prvotné metódy a preťaženie sú dva pojmy alebo techniky používané v javových programovacích jazykoch. Obidva koncepty umožňujú programátorovi poskytovať rôzne implementácie pre metódy pod rovnakým názvom. Tento článok rozlišuje medzi dvoma konceptmi programovania.

Funkčné preťaženie alebo preťaženie metódy umožňuje vytvárať niekoľko metód pod rovnakým názvom, v rovnakej triede, ale navzájom odlišných vo vstupnom a výstupnom type funkcie. Je to jednoducho definované ako schopnosť jednej funkcie vykonávať rôzne úlohy.
Pri preťažení majú implementácie metód rovnaký názov, pretože vykonávajú podobné úlohy. Preťaženie je tiež považované za polymorfné. Funkcie s rôznymi implementáciami závisia od ich špecifikovaných typov argumentov. Zvyčajne sa spája so statickými programovacími jazykmi, ktoré presadzujú typovú kontrolu funkčných volaní. To je tiež považované za praktické, pretože umožňuje programátorovi napísať niekoľko rôznych metód v tej istej triede. Avšak pri preťažení runtime procesor zmení názov všetkých preťažených metód, čo môže byť problém.

Prepísanie metódy v objektovo orientovanom programovaní je funkcia, ktorá umožňuje triede podtriedy alebo podriadenej triedy poskytnúť špecifickú implementáciu metódy, ktorá je už poskytnutá jednou z jej super-tried alebo nadradených tried. Implementácia v podtriede nahrádza alebo nahradí implementáciu v materskej triede tým, že poskytuje metódu pod rovnakým názvom, rovnakými parametrami alebo podpisom a rovnakým typom návratu ako metóda v materskej triede.
Pri overovaní metód sú funkcie kódované na vykonávanie špecifických úloh v programe. Prepísanie závisí od prítomnosti funkcie základnej triedy pre jej vzhľad. Tu vykonanú funkciu určuje objekt, ktorý sa používa na jej vyvolanie, tj ak sa na vyvolanie metódy použije objekt nadradenej triedy, vykoná sa funkcia v nadradenej triede. Nadradený je polymorfný charakter; pomáha navrhovať programy založené na prvom implicitnom parametri, ktorý je možné vyriešiť za behu. Niektoré jazyky v jazyku Java umožňujú programátorovi zabrániť tomu, aby bola metóda prepísaná.
Porovnanie medzi preťažením a preradením:
preťaženie | prvoradý | |
definícia | Znamená to mať metódy tej istej triedy pod rovnakým názvom, ale každá metóda má rôzne parametre alebo má rovnaké parametre s rôznymi typmi a poradím. | To znamená mať podradnú triedu s rovnakými metódami pod rovnakým názvom a presne rovnaký typ parametrov a rovnaký typ návratu ako super trieda. |
zmysel | Znamená to, že viac ako jedna metóda zdieľa rovnaký názov v rovnakej triede, ale má iný podpis. | Znamená to, že metóda základnej triedy je v odvodenej triede s rovnakým podpisom predefinovaná. |
správanie | Pridáva alebo rozširuje správanie metód. | Zmení existujúce správanie metódy. |
polymorfizmus | Je to kompilovaný časový polymorfizmus. | Je to polymorfizmus behu času. |
Statická metóda | Statická metóda môže byť preťažená. | Statickú metódu nemožno prepísať. |
dlhopis | Statická väzba. | Dynamická väzba. |
dedičstvo | Môže alebo nemusí vyžadovať dedičstvo. | Vždy vyžaduje dedičnosť. |
združenie | Zvyčajne sa spája so statickými programovými jazykmi. | Obvykle sa spája s programami orientovanými na objekt. |
podpis | Metódy majú iný podpis. | Metódy musia mať rovnaký podpis. |
rýchlosť | Je to rýchlejšie ako prevratné. | Je pomalá v porovnaní s preťažením. |
vyučovanie | Pre preťaženie nevyžaduje viac ako jednu triedu. | Vyžaduje minimálne dve triedy na preťaženie. |
hladina | Metódy môžu mať akúkoľvek úroveň prístupu. | Metódy majú rovnakú alebo širokú úroveň prístupu. |
príklad | Pridať triedu { int suma (int a, int b) { vrátiť a + b; } int suma (int a) { vrátiť a + 10; } } | Trieda A // Super trieda { neplatné zobrazenie (int num) { print num; } } Trieda B zdedí triedu A Trieda B // Subkategória { neplatné zobrazenie (int num) { print num; } } |