Obsah
Vývoj aplikací v Jáva těží hodně z filozofie, kterou používá, což je orientace objektu, protože nám umožňuje modelovat situace a objekty v reálném světě, což usnadňuje přenos fyzických procesů do digitální reprezentace v kódu.Jedním z nástrojů, který nejvíce používáme, je dědičnost, kdy získáme všechny vlastnosti a metody vyšší třídy, ale co se stane, když metoda této třídy, ze které dědí, nesplňuje to, co chceme, protože tady to, co přichází do hry nazýváme přepsání metody.
K tomu dochází, když a podtřída musí změnit způsob, jakým byla implementována metoda její nadřazené třídy, buď přidat nějaké další podrobnosti nebo jednoduše úplně změnit metodu, tato akce nemá žádná omezení, ačkoli na úrovni myšlení je myšlenka, že přepsaná metoda splňuje nebo je v souladu s stejné téma původní metody, například pokud máme metodu nazvanou printAttributes (); a jeho funkcí je vytisknout některé atributy objektu, pokud jej přepíšeme, neměli bychom jej nechat vypočítat kredit, spíše pokud dojde k jeho přepsání, je to proto, že měníme atributy, které musí tisknout, nebo přidáváme konkrétní atributy objektu. podtřída.
Při přepisování metody je třeba mít na paměti následující:
- Metodu lze přepsat, pouze pokud je přístupná, takže a soukromá metoda nelze přepsat, protože k němu nelze přistupovat mimo vlastní třídu, takže pokud a soukromá metoda je přepsán v podřízené třídě, nová metoda opravdu nemá nic společného s nadtřídou.
- A statická metoda Nelze ji také přepsat, takže pokud předefinujeme statickou metodu v naší podřízené třídě, metoda nadřazené třídy je skrytá pro použití a jediný způsob, jak se k ní dostat, je zavolat ji přímo s názvem nadřazené třídy, například : Person.statická metoda ()
Protože známe teoretické základy, podívejme se, jak přepsat metodu. Předpokládejme, že máme tuto rodičovskou třídu:
Jak vidíme, máme atribut color a metodu, která atributy vytiskne, nyní se podívejme, jak vypadá podřízená třída, která přepíše metodu:
Zde vidíme, že jsme metodu nově definovali tak, že vytiskne další řádek a ukáže nám poloměr, protože nám slouží informace z první metody, rozhodli jsme se ji nazvat pomocí slova Super, takže naše metoda ví, že musí vyvolat metodu její nadřazené třídy a když vytvoříme instanci třídy, zavolá metodu své třídy Kruh který byl přepsán.
DůležitéJak vidíme, tato implementace je docela jednoduchá, na závěr si musíme pamatovat, že při přepisování metod je to, že metoda, kterou vytvoříme k přepsání nadřazené metody, musí přijmout stejné argumenty a vrátit stejný datový typ, protože pokud změníme argumenty, to znamená, že množství a jeho datový typ, co skutečně děláme, je přetížení.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod