Rozdíl mezi přetížením a přepsáním v Javě

Obsah:

Rozdíl mezi přetížením a přepsáním v Javě
Rozdíl mezi přetížením a přepsáním v Javě

Video: Rozdíl mezi přetížením a přepsáním v Javě

Video: Rozdíl mezi přetížením a přepsáním v Javě
Video: Java OVERLOADING vs OVERRIDING. Object Oriented Java tutorial. #16 2024, Listopad
Anonim

Klíčový rozdíl – přetížení vs přepisování v Javě

Object-Oriented Programming (OOP) je hlavní paradigma ve vývoji softwaru. Je to metodika navrhování programu pomocí tříd a objektů. Třída je plán. Popisuje, co by měl objekt obsahovat. Definuje vlastnosti nebo atributy a metody, ze kterých by se měl objekt skládat. Objekt je tedy instancí třídy. Tyto objekty komunikují s jinými objekty. Jedním z hlavních konceptů OOP je polymorfismus. Je to schopnost objektu chovat se více způsoby. Polymorfismus je rozdělen do dvou sekcí, které jsou přetěžující a prvořadé. Tento článek popisuje rozdíl mezi těmito dvěma v Javě. Klíčový rozdíl mezi přetížením a přepsáním v Javě je v tom, že přetížení je schopnost vytvořit více metod stejného jména s různými implementacemi a přepsání je poskytnout implementaci pro metodu podtřídy, která již existuje v nadtřídě.

Co je přetížení v Javě?

Přetížení je schopnost vytvářet více metod stejného jména s různými implementacemi. Viz níže uvedený kód Java.

Rozdíl mezi přetížením a přepsáním v Javě
Rozdíl mezi přetížením a přepsáním v Javě
Rozdíl mezi přetížením a přepsáním v Javě
Rozdíl mezi přetížením a přepsáním v Javě

Obrázek 01: Java program, který vysvětluje přetížení s různým počtem argumentů

Podle výše uvedeného programu obsahuje třída A dvě metody se stejným názvem. První metoda součtu má dva parametry. Druhá metoda součtu má tři parametry. Při vytváření objektu typu A a volání sum(2, 3) zavolá metodu sum se dvěma parametry, které jsou sum(int a, int b) a vrátí 5. Při vytváření objektu typu A a volání sum(2, 3, 4), zavolá druhou metodu součtu se třemi parametry, což je součet (int a, int b, int c) a vrátí 9.

Název metody je stejný, ale liší se počet parametrů. Lze pozorovat, že stejný objekt se chová odlišně. Tento koncept je známý jako přetížení. Označuje se také jako statická vazba nebo polymorfismus času kompilace.

Může také dojít k přetížení různými typy dat. Viz níže uvedený kód Java.

Rozdíl mezi přetížením a přepsáním v Java_Figure 02
Rozdíl mezi přetížením a přepsáním v Java_Figure 02
Rozdíl mezi přetížením a přepsáním v Java_Figure 02
Rozdíl mezi přetížením a přepsáním v Java_Figure 02

Obrázek 02: Java program, který vysvětluje přetížení s různým počtem argumentů

Podle výše uvedeného programu se třída A skládá ze dvou metod se stejným názvem. Metoda sum(int a, int b) obdrží dvě celočíselné hodnoty. Součet (double a double b) obdrží dvě dvojité hodnoty. Při vytváření objektu typu A a volání sum(2, 3) zavolá sum(int a, int b) a vrátí hodnotu 5. Při volání sum(3.4, 5.6) zavolá sum(double a double b) a vrátí hodnotu 9,0. V tomto příkladu mají metody stejný název, ale jiný typ proměnných. To je také přetížení.

Co je v Javě nadřazené?

V Javě je možné vytvářet podtřídy s již existujícími třídami. Místo vytváření nové třídy od začátku je možné použít vlastnosti a metody již existující třídy. Existující třída je nadtřídou a odvozená třída je podtřídou. Když podtřída poskytuje implementaci pro metodu, která je již v nadtřídě, nazývá se to přepisování. Viz níže uvedený program Java.

Klíčový rozdíl mezi přetížením a přepsáním v Javě
Klíčový rozdíl mezi přetížením a přepsáním v Javě
Klíčový rozdíl mezi přetížením a přepsáním v Javě
Klíčový rozdíl mezi přetížením a přepsáním v Javě

Obrázek 03: Java program pro přepsání

Podle výše uvedeného programu má třída A metodu display(). Třída B se rozšiřuje z třídy A, takže vlastnosti a metody třídy A jsou přístupné třídě B. Třída B má metodu display() se specifickou implementací. Při vytváření objektu typu A a volání metody zobrazení poskytne výstup B. I když třída A má metodu zobrazení, je přepsána metodou zobrazení třídy B. Podtřída implementuje metodu, která již v nadtřídě existuje.

Tento koncept je typem polymorfismu a je známý jako přepisování. Nazývá se také jako Late Binding, Dynamic Binding, Runtime Polymorphism.

Jaké jsou podobnosti mezi přetížením a přepsáním v Javě?

  • Oba jsou typy polymorfismu.
  • Při přetěžování a přepisování mají metody stejný název.

Jaký je rozdíl mezi přetížením a přepsáním v Javě?

Přetížení vs přepisování v Javě

Přetížení v Javě je schopnost vytvářet více metod stejného jména s různými implementacemi. Přepsání v Javě poskytuje specifickou implementaci v metodě podtřídy pro metodu, která již v nadtřídě existuje.
Parametry
Při přetížení mají metody stejný název, ale jiný počet parametrů nebo jiný typ parametrů. Při přepsání mají metody stejný název a parametry musí být stejné.
Motivy
V rámci třídy dochází k přetížení. K přepsání dochází v rámci dvou tříd, které mají dědičný vztah.
Synonyma
Přetížení se nazývá kompilovaný časový polymorfismus. Přepsání se nazývá polymorfismus doby běhu.

Shrnutí – Přetížení vs přepisování v Javě

Polymorfismus je hlavní koncept v objektově orientovaném programování. Poskytuje schopnost objektu chovat se více způsoby. To může být buď přetížení, nebo přepsání. Přetížení je polymorfismus v době kompilace a přepisování je polymorfismus běhového prostředí. Jsou užitečné při vývoji softwarových aplikací. Rozdíl mezi přepsáním a přetížením je ten, že přetížení je schopnost vytvořit více metod stejného jména s různými implementacemi a přepsání poskytuje specifickou implementaci v metodě podtřídy pro metodu, která již v nadtřídě existuje. V Javě je možné implementovat přetěžování i přepisování.

Stáhněte si PDF Přetížení vs přepisování v Javě

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde Rozdíl mezi přetížením a přepsáním v Javě

Doporučuje: