Klíčový rozdíl : Přetížení znamená, že má dvě metody stejné třídy se stejným názvem as různými typy parametrů, zatímco přepisovací prostředky mají dvě různé metody ve stejné třídě se stejnými typy parametrů, avšak s různými implementacemi.
Nadřazené metody a přetížení jsou dvě koncepty nebo techniky používané v java programovacích jazycích. Obě koncepty umožňují programátorovi poskytovat různé implementace pro metody pod stejným názvem. Tento článek rozlišuje mezi dvěma pojmy programování.
Funkce přetížení nebo přetížení metody umožňuje vytvořit několik metod pod stejným jménem, ve stejné třídě, ale navzájem se liší ve vstupu a výstupním typem funkce. Jedná se jednoduše definována jako schopnost jedné funkce plnit různé úkoly.
Při přetížení mají implementace metod stejný název, protože provádějí podobné úlohy. Také přetížení je považováno za polymorfní povahu. Funkce s různými implementacemi závisí na jejich specifikovaných typech argumentů. To je obvykle spojeno se statickými programovacími jazyky, které vyžadují kontrolu typu při volání funkce. To je také považováno za praktické, protože umožňuje programátorovi psát řadu různých metod ve stejné třídě. Při přetížení runtime procesor však změní název všech přetížených metod, což může být problém.
Přepínání metody v objektově orientovaném programování je vlastnost, která umožňuje třídě podtřídy nebo podřízené třídy poskytnout konkrétní implementaci metody, která je již poskytována jednou z jejích tříd nadřazené třídy nebo nadřazené třídy. Implementace v podtřídě přepíše nebo nahrazuje implementaci v nadřazené třídě tím, že poskytuje metodu pod stejným názvem, stejnými parametry nebo podpisem a stejným návratovým typem jako metoda v nadřazené třídě.
Při přepínání metod jsou funkce kódovány pro provádění specifických úloh v programu. Přepsání závisí na přítomnosti funkce základní třídy pro její vzhled. Zde je spuštěná funkce určena objektem, který se používá k jejímu vyvolání, tj. Pokud se použije objekt nadřazené třídy pro vyvolání metody, provede se funkce v nadřazené třídě. Převažující je polymorfní povaha; pomáhá navrhovat programy založené na prvním implicitním parametru, který lze vyřešit za běhu. Některé jazyky v jazyce Java umožňují programátorovi zabránit tomu, aby byla metoda přepsána.
Srovnání mezi přetížením a překračováním:
Přetížení | Přepínání | |
Definice | Znamená to mít metody stejné třídy pod stejným názvem, ale každá metoda má různé parametry nebo má stejné parametry s různými typy a pořadí. | To znamená mít podtřídu se stejnými metodami pod stejným jménem a přesně stejným typem parametrů a stejným návratovým typem jako super třídy. |
Význam | To znamená, že více než jedna metoda sdílí stejný název ve stejné třídě, ale má jiný podpis. | To znamená, že metoda základní třídy je znovu definována v odvozené třídě se stejným podpisem. |
Chování | Přidává nebo rozšiřuje chování metod. | Změní stávající chování metody. |
Polymorfismus | Je to kompilační časový polymorfismus. | Je to polymorfismus běhu času. |
Statická metoda | Statická metoda může být přetížena. | Statickou metodu nelze přepsat. |
Pouto | Statická vazba. | Dynamická vazba. |
Dědictví | Může nebo nemusí vyžadovat dědictví. | Vždy vyžaduje dědictví. |
Sdružení | To je obvykle spojeno se statickými jazyky programu. | Obvykle se sdružuje s programy orientovanými na objekt. |
Podpis | Metody mají odlišný podpis. | Metody musí mít stejný podpis. |
Rychlost | Je to rychlejší než převrat. | Je pomalé ve srovnání s přetížením. |
Třídy | Pro přetížení nevyžaduje více než jednu třídu. | Vyžaduje přinejmenším dvě třídy pro přetížení. |
Úroveň | Metody mohou mít libovolnou úroveň přístupu. | Metody mají stejnou nebo širokou úroveň přístupu. |
Příklad | Přidat třídu {{ int součet (int a, int b) {{ vrátí a + b; }} int součet (int a) {{ vrátit a + 10; }} }} | Třída A // Super třídy {{ prázdné zobrazení (int num) {{ tisk num; }} }} Třída B dědí třídu A Třída B // Subkategorie {{ prázdné zobrazení (int num) {{ tisk num; }} }} |