Koja je razlika između preopterećenja metode i nadjačavanja?



Ovaj članak pokriva ključne razlike između preopterećenja metode i nadjačavanja u javi s raznim primjerima, uključujući super ključnu riječ i razna pravila.

Java programski jezik je najbolji izbor kad je riječ o . S konceptima poput razreda , , , itd., postaje izuzetno lako raditi s njim . Jednostavnost pristupa i jednostavna sintaksa čine kôd učinkovitim i manje složenim. U ovom ćemo članku naučiti o preopterećenju i poništavanju metoda u Javi. Slijede teme o kojima se raspravlja na ovom blogu:

Što je preopterećenje metoda u Javi?

Preopterećenje metode omogućuje da metoda ima isto ime koje se razlikuje na temelju argumenata ili vrsta argumenata. Može se povezati s polimorfizmom u vremenu kompajliranja. Slijedi nekoliko uputa koje moramo imati na umu prilikom preopterećenja metoda u Javi.





  • Ne možemo preopteretiti tip povratka.

  • Iako se možemo preopteretiti , argumenti ili ulazni parametri moraju biti različiti.



  • Ne možemo preopteretiti dvije metode ako se razlikuju samo po statičkoj ključnoj riječi.

  • Poput ostalih statičkih metoda, metoda main () također se može preopteretiti.

preopterećenje metode - preopterećenje i prevladavanje metode u java- edureki



Pogledajmo jednostavan program da bismo razumjeli kako preopterećenje metoda radi u pythonu.

javna klasa 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 glavna (argumenti niza []) {Div ob = novi Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Izlaz: 5 4

U gornjem programu imamo dvije metode s istim nazivom, ali različitim parametrima. Na taj način djeluje preopterećenje metode .

Zašto preopterećenje metoda?

Glavna prednost korištenja preopterećenja metoda u Javi je u tome što nam daje slobodu da iznova i iznova ne definiramo funkciju radi istog. U donjem primjeru, dvije metode u osnovi izvode podjelu, tako da možemo imati različite metode s istim imenom, ali s različitim parametrima. Također pomaže u polimorfizmu tijekom kompajliranja.

kako postaviti pomrčinu

Preopterećenje glavne () metode:

Slijedi primjer preopterećenja metode main () u javi.

javna klasa Edureka {public static void main (String [] args) {System.out.println ('hello') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' dobrodošli '+ arg1) Edureka.main (' welcome ',' to edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hello ', + arg1, + arg2)}}
 Izlaz: pozdrav edurekan pozdrav pozdrav edureka

Primjeri preopterećenja metoda

  • Program za preopterećenje statičkih metoda u javi.
test javne klase {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))}}
 Izlaz: 100 edureka
  • Program za preopterećenje tri metode s istim nazivom.
javna klasa Dodaj {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 []) {Dodaj ob = novo Dodaj () ob.add (15,25) ob.add (15,25,35) ob .add (11.5, 22.5)}}
 Izlaz: 40 75 34

Što je nadjačavanje metoda u Javi?

Nasljeđivanje u javi uključuje odnos između roditelja i djeteta. Kad god obje klase sadrže metode s istim imenom i argumente ili parametre, sigurno je da će jedna od metoda nadvladati drugu metodu tijekom izvršavanja. Metoda koja će se izvršiti ovisi o objektu.

Ako objekt podređene klase poziva metodu, metoda podređene klase nadjačat će metodu nadređene klase. Inače, ako objekt roditeljske klase pozove metodu, izvršit će se metoda roditeljske klase.

što je sučelje markera u javi

Nadjačavanje metode također pomaže u implementaciji runtime polimorfizma u javi. Uzmimo jednostavan primjer da shvatimo kako nadjačavanje metoda djeluje u javi.

class Roditelj {void view () {System.out.println ('ovo je metoda nadređene klase)}} class Child produžuje Parent {void view () {System.out.println (' ovo je metoda podređene klase)}} public static void main (String args []) {Nadređeni ob = novi Roditelj () ob.view () Nadređeni ob1 = novo Dijete () ob1.view ()
 Izlaz: ovo je metoda klase djeteta

Pravila za nadjačavanje metode

  • The pristup uređivanju može dopustiti samo veći pristup nadjačanoj metodi.

  • DO konačni metoda ne podržava nadjačavanje metode.

  • Statičku metodu nije moguće nadjačati.

  • Privatne metode ne mogu se nadjačati.

  • Tip povrata metode nadjačavanja mora biti isti.

  • Možemo pozvati metodu nadređene klase u nadjačavanju pomoću ključne riječi super.

  • DO graditelj ne može se nadjačati jer podređena klasa i roditeljska klasa ne mogu imati konstruktor s istim imenom.

Primjer nadjačavanja metode

  • Program za prikaz nadjačavanja pomoću super ključne riječi
klasa Roditelj {void show () {System.out.println ('metoda roditeljske klase')} klasa Dijete produžuje roditelj {void show () {super.show () System.out.println ('metoda klase djeteta')} public static void main (String args []) {Nadređeni ob = novo dijete () ob.show ()}}
 Izlaz: metoda klase roditelja roditeljska metoda

Preopterećenje vs nadjačavanje: Razlika između preopterećenja metode i nadjačavanja metode

Slijede ključne razlike između preopterećenja metoda i nadjačavanja u Javi.

Preopterećenje metode Nadjačavanje metode
  • Koristi se za povećanje čitljivosti programa
  • Pruža specifičnu implementaciju metode koja je već u roditeljskoj klasi
  • Izvodi se unutar iste klase
  • Uključuje više klasa
  • Parametri se moraju razlikovati u slučaju preopterećenja
  • Parametri moraju biti isti u slučaju poništavanja
  • Primjer je polimorfizma u vremenu kompajliranja
  • To je primjer polimorfizma tijekom izvođenja
  • Vrsta povrata može biti različita, ali morate promijeniti i parametre.
  • Vrsta povrata mora biti ista u poništavanju
  • Statičke metode mogu se preopteretiti
  • Nadjačavanje ne uključuje statičke metode.

Na ovom smo blogu detaljno raspravljali o preopterećenju metode i nadjačavanju metoda. Uključivanjem klasa, objekata i koncepata poput nasljeđivanja i polimorfizma postaje prilično važno dobiti jasnu predodžbu o tome što znači preopterećenje ili poništavanje metoda u javi.

Programski jezik Java vrhunac je objektno orijentiranog programiranja i uključuje puno aplikacija. Uz potražnju i popularnost, ambiciozni programer Java mora biti vješt u temeljnim konceptima programskog jezika. Upišite se kod Edureke da započnete svoje učenje.

Imate pitanje za nas? molimo vas da to spomenete u odjeljku za komentare ovog članka o „preopterećenju metode u odnosu na prevladavanje metode u javi“ i javit ćemo vam se što je prije moguće.