Aký je rozdiel medzi preťažením metódy a prepísaním?



Tento článok sa zaoberá kľúčovými rozdielmi medzi preťažením a prepísaním metódy v jave s rôznymi príkladmi vrátane super kľúčového slova a rôznych pravidiel.

Programovací jazyk Java je najlepšou voľbou, pokiaľ ide o . S pojmami ako triedy , , atď., je veľmi ľahké s ním pracovať . Ľahký prístup a ľahká syntax robí kód efektívnym a menej zložitým. V tomto článku sa dozvieme o preťažení a prepísaní metód v Jave. Nasledujú témy diskutované v tomto blogu:

Čo je preťaženie metód v prostredí Java?

Preťaženie metódy umožňuje, aby mala metóda rovnaký názov, ktorý sa líši na základe argumentov alebo typov argumentov. Môže to súvisieť s polymorfizmom v čase kompilácie. Nasleduje niekoľko ukazovateľov, ktoré musíme mať na pamäti pri preťažovaní metód v Jave.





  • Nemôžeme preťažiť návratový typ.

  • Aj keď môžeme preťažiť , argumenty alebo vstupné parametre musia byť odlišné.



  • Nemôžeme preťažiť dve metódy, ak sa líšia iba statickým kľúčovým slovom.

  • Rovnako ako iné statické metódy, aj metóda main () môže byť preťažená.

preťaženie metódy - preťaženie a prepísanie metódy v java- edureka



Pozrime sa na jednoduchý program, ktorý pochopí, ako funguje preťaženie metód v pythone.

public class Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static void main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Výkon: 5 4

Vo vyššie uvedenom programe máme dve metódy s rovnakým názvom, ale rôznymi parametrami. Takto funguje preťaženie metódy .

Prečo preťaženie metódy?

Hlavnou výhodou použitia preťaženia metód v Jave je to, že nám dáva slobodu nedefinovať funkciu znova a znova pre to isté. V nasledujúcom príklade tieto dve metódy v zásade vykonávajú delenie, takže môžeme mať rôzne metódy s rovnakým názvom, ale s rôznymi parametrami. Pomáha tiež pri kompilácii polymorfizmu.

Preťaženie metódy main ():

Nasleduje príklad preťaženia metódy main () v jave.

public class Edureka {public static void main (String [] args) {System.out.println ('hello') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' welcome '+ arg1) Edureka.main (' welcome ',' to edureka ')} public static void main (String arg1, String arg2) {System.out.println (' ahoj ', + arg1, + arg2)}}
 Výkon: ahoj vitaj edurekan ahoj, vitaj na edureka

Príklady preťaženia metód

  • Program na preťaženie statických metód v Jave.
public class Test {public static int func (int a) {return 100} public static char func (int a, int b) {return 'edureka'} public static void main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 Výkon: 100 edureka
  • Program na preťaženie troch metód s rovnakým názvom.
public class Add {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, double b) {return (a + b)} public static void main (String args []) {Add ob = new Add () ob.add (15,25) ob.add (15,25,35) ob .add (11.5, 22.5)}}
 Výkon: 40 75 34

Čo je to prepísanie metódy v Jave?

Dedenie v Jave zahŕňa vzťah medzi triedami rodiča a dieťaťa. Kedykoľvek obe triedy obsahujú metódy s rovnakým názvom a argumentmi alebo parametrami, je isté, že jedna z metód počas vykonávania prepíše inú metódu. Metóda, ktorá sa vykoná, závisí od objektu.

Ak objekt podradenej triedy zavolá metódu, metóda podradenej triedy prepíše metódu nadradenej triedy. V opačnom prípade, ak objekt nadradenej triedy zavolá metódu, vykoná sa metóda nadradenej triedy.

Prepísanie metódy tiež pomáha pri implementácii runtime polymorfizmu v Jave. Uveďme si jednoduchý príklad, aby sme pochopili, ako funguje prepísanie metódy v Jave.

previesť binárne na desatinné java
class Parent {void view () {System.out.println ('this is a parent class method)}} class Child extends Parent {void view () {System.out.println (' this is a child class method)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Výkon: toto je metóda detskej triedy

Pravidlá pre prepísanie metódy

  • The prístup upraviť môže povoliť viac prístupu iba pre prepísanú metódu.

  • TO Konečný metóda nepodporuje prepísanie metódy.

  • Statickú metódu nemožno prepísať.

  • Súkromné ​​metódy nemožno prepísať.

  • Návratový typ prepisovacej metódy musí byť rovnaký.

  • Metódu nadradenej triedy môžeme nazvať prvoradou metódou pomocou kľúčového slova super.

  • TO staviteľ nemožno prepísať, pretože podradená trieda a nadradená trieda nemôžu mať konštruktor s rovnakým názvom.

Príklad prevládajúcej metódy

  • Program na prepísanie pomocou super kľúčového slova
trieda Parent {void show () {System.out.println ('parent class method')} class Child extends Parent {void show () {super.show () System.out.println ('child class method')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Výkon: metóda rodičovskej triedy metóda detskej triedy

Preťaženie vs prepísanie: Rozdiel medzi preťažením metódy a prepísaním metódy

Nasledujú kľúčové rozdiely medzi preťažením metódy a prepísaním v Jave.

Metóda preťaženia Prepísanie metódy
  • Používa sa na zvýšenie čitateľnosti programu
  • Poskytuje konkrétnu implementáciu metódy už v nadradenej triede
  • Vykonáva sa v rámci tej istej triedy
  • Zahŕňa viac tried
  • V prípade preťaženia musia byť parametre odlišné
  • V prípade prepísania musia byť parametre rovnaké
  • Je príkladom polymorfizmu v čase kompilácie
  • Je to príklad runtime polymorfizmu
  • Typ vrátenia sa môže líšiť, musíte však tiež zmeniť parametre.
  • Typ návratu musí byť pri prepísaní rovnaký
  • Môžu byť preťažené statické metódy
  • Prepísanie nezahŕňa statické metódy.

V tomto blogu sme sa podrobne zaoberali preťažovaním metód a prepismi metód. So zapojením tried, objektov a konceptov ako dedičnosť a polymorfizmus je dosť dôležité získať jasnú predstavu o tom, čo to znamená preťažiť alebo prekonať metódy v jave.

Programovací jazyk Java je vrcholom objektovo orientovaného programovania a obsahuje veľa aplikácií. S dopytom a popularitou musí byť začínajúci vývojár java schopný ovládať základné koncepty programovacieho jazyka. Zaregistrujte sa k Edureke naštartovať vaše učenie.

Máte na nás otázku? uveďte to prosím v sekcii komentárov v tomto článku o „preťažení metódy oproti prepísaniu metódy v jave“ a ozveme sa vám čo najskôr.