Razlika između preopterećenja i nadjačavanja u Javi

Sadržaj:

Razlika između preopterećenja i nadjačavanja u Javi
Razlika između preopterećenja i nadjačavanja u Javi

Video: Razlika između preopterećenja i nadjačavanja u Javi

Video: Razlika između preopterećenja i nadjačavanja u Javi
Video: Java EE для начинающих. Урок 2: Теория. Apache Tomcat. Сервлеты. Жизненный цикл сервлета. 2024, Decembar
Anonim

Ključna razlika – preopterećenje naspram nadjačavanja u Javi

Objektno orijentirano programiranje (OOP) je glavna paradigma u razvoju softvera. To je metodologija za dizajniranje programa koristeći klase i objekte. Klasa je nacrt. Opisuje šta treba sadržavati u objektu. Definira svojstva ili atribute i metode od kojih bi se objekt trebao sastojati. Dakle, objekat je instanca klase. Ovi objekti komuniciraju s drugim objektima. Jedan od glavnih koncepta OOP-a je polimorfizam. To je sposobnost objekta da se ponaša na više načina. Polimorfizam je kategoriziran u dva dijela koji su preopterećeni i nadjačavajući. Ovaj članak govori o razlici između ova dva u Javi. Ključna razlika između preopterećenja i nadjačavanja u Javi je u tome što je preopterećenje mogućnost kreiranja više metoda istog imena sa različitim implementacijama, a nadjačavanje je obezbjeđivanje implementacije za metodu podklase koja već postoji u superklasi..

Šta je preopterećenje u Javi?

Preopterećenje je mogućnost kreiranja više metoda istog imena sa različitim implementacijama. Pogledajte donji Java kod.

Razlika između preopterećenja i nadjačavanja u Javi
Razlika između preopterećenja i nadjačavanja u Javi
Razlika između preopterećenja i nadjačavanja u Javi
Razlika između preopterećenja i nadjačavanja u Javi

Slika 01: Java program koji objašnjava preopterećenje različitim brojem argumenata

Prema gore navedenom programu, klasa A sadrži dva metoda sa istim imenom. Metoda prve sume ima dva parametra. Drugi metod sume ima tri parametra. Prilikom kreiranja objekta tipa A i pozivanja sum(2, 3), on će pozvati metodu sum sa dva parametra koji su sum(int a, int b) i vraća 5. Prilikom kreiranja objekta tipa A i pozivanja sum(2, 3, 4), pozvaće drugu metodu suma sa tri parametra, a to je sum(int a, int b, int c) i vraća 9.

Naziv metode je isti, ali broj parametara se razlikuje. Može se primijetiti da se isti objekat ponaša drugačije. Ovaj koncept je poznat kao preopterećenje. Takođe se naziva i statičko vezivanje ili polimorfizam vremena kompajliranja.

Također može biti preopterećen različitim tipovima podataka. Pogledajte donji Java kod.

Razlika između preopterećenja i nadjačavanja u Javi_slika 02
Razlika između preopterećenja i nadjačavanja u Javi_slika 02
Razlika između preopterećenja i nadjačavanja u Javi_slika 02
Razlika između preopterećenja i nadjačavanja u Javi_slika 02

Slika 02: Java program koji objašnjava preopterećenje različitim brojem argumenata

Prema gore navedenom programu, klasa A se sastoji od dva metoda sa istim imenom. Metoda sum(int a, int b) prima dvije cjelobrojne vrijednosti. Zbir (double a double b) prima dvije dvostruke vrijednosti. Prilikom kreiranja objekta tipa A i pozivanja sum(2, 3), on će pozvati sum(int a, int b) i vratiti vrijednost 5. Kada poziva sum(3.4, 5.6), pozvaće sum(double a double b) i vrati vrijednost 9.0. U ovom primjeru metode imaju isto ime, ali različite vrste varijabli. Ovo je također preopterećenje.

Šta je nadjačavanje u Javi?

U Javi je moguće izgraditi podklase sa već postojećim klasama. Umjesto kreiranja nove klase od početka, moguće je koristiti svojstva i metode već postojeće klase. Postojeća klasa je nadklasa, a izvedena klasa je potklasa. Kada potklasa pruža implementaciju za metodu, koja je već u superklasi, poznata je kao nadjačavanje. Pogledajte donji Java program.

Ključna razlika između preopterećenja i nadjačavanja u Javi
Ključna razlika između preopterećenja i nadjačavanja u Javi
Ključna razlika između preopterećenja i nadjačavanja u Javi
Ključna razlika između preopterećenja i nadjačavanja u Javi

Slika 03: Java program za nadjačavanje

Prema gore navedenom programu, klasa A ima metod display(). Klasa B se proteže od klase A, tako da su svojstva i metode klase A dostupni klasi B. Klasa B ima metod display() sa specifičnom implementacijom. Prilikom kreiranja objekta tipa A i pozivanja metode prikaza, on će dati izlaz B. Iako klasa A ima metodu prikaza, ona je nadjačana kao metoda prikaza klase B. Podklasa implementira metodu koja već postoji u superklasi.

Ovaj koncept je vrsta polimorfizma i poznat kao nadjačavanje. Naziva se i kao kasno uvezivanje, dinamičko povezivanje, polimorfizam vremena izvršavanja.

Koje su sličnosti između preopterećenja i nadjačavanja u Javi?

  • Obje su vrste polimorfizma.
  • U preopterećenju i nadjačavanju, metode imaju isto ime.

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

Overloading vs Overriding in Java

Preopterećenje u Javi je mogućnost kreiranja više metoda istog imena sa različitim implementacijama. Preglasavanje u Javi pruža specifičnu implementaciju u metodu podklase za metodu koja već postoji u superklasi.
Parametri
U slučaju preopterećenja, metode imaju isti naziv, ali različit broj parametara ili različite vrste parametara. U poništavanju, metode imaju isti naziv i parametri moraju biti isti.
Teme
Dolazi do preopterećenja unutar klase. Nadjačavanje se dešava unutar dvije klase koje imaju odnos nasljeđivanja.
Sinonimi
Preopterećenje se naziva kompajlirani vremenski polimorfizam. Nadjačavanje se naziva polimorfizam vremena izvođenja.

Sažetak – preopterećenje vs nadjačavanje u Javi

Polimorfizam je glavni koncept u objektno orijentiranom programiranju. Pruža mogućnost da se objekt ponaša na više načina. Ovo može biti ili preopterećenje ili nadjačavanje. Preopterećenje je polimorfizam u vrijeme kompajliranja, a nadjačavanje je polimorfizam vremena izvođenja. Oni su korisni u razvoju softverskih aplikacija. Razlika između nadjačavanja i preopterećenja je u tome što je preopterećenje mogućnost kreiranja više metoda istog imena sa različitim implementacijama, a nadjačavanje pruža specifičnu implementaciju u metodu podklase za metodu koja već postoji u superklasi. Moguće je implementirati i preopterećenje i nadjačavanje u Javi.

Preuzmite PDF Overloading vs Overriding u Javi

Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje Razlika između preopterećenja i nadjačavanja u Javi

Preporučuje se: