Razlika između nasljeđivanja i sučelja u Javi

Ključna razlika - nasljeđivanje vs sučelje na Javi
 

Java je programski jezik koji je razvio Sun Microsystems. Java se može koristiti za razvoj različitih aplikacija. To je jezik više paradigmi koji podržava objektno orijentirano, strukturirano itd. Glavna prednost Jave je što podržava objektno-orijentirano programiranje (OOP). Programer može kreirati klase i objekte. U OOP-u postoje četiri stupa. To su nasljeđivanje, polimorfizam, apstrakcija i enkapsulacija. Nasljeđivanje i sučelja povezana su s OOP-om. ključna razlika između nasljeđivanja i sučelja je to nasljeđivanje jest dobivanje novih klasa iz postojećih klasa, a sučelje je primjena apstraktnih klasa i višestrukog nasljeđivanja.

SADRŽAJ

1. Pregled i ključne razlike
2. Što je nasljeđivanje u Javi
3. Što je sučelje u Javi
4. Sličnosti između nasljeđivanja i sučelja u Javi
5. Usporedna usporedba - Nasljeđivanje vs sučelje u Javi u tabličnom obliku
6. Sažetak

Što je nasljeđivanje u Javi?

Nasljeđivanjem se može postići ponovna upotrebljivost koda. Nasljeđivanje pomaže da se ponovo iskoriste atributi i metode postojeće klase. Mehanizam za dobivanje nove klase pomoću stare klase naziva se nasljeđivanjem. Stara klasa je poznata kao roditeljska klasa ili super klasa. Derivirana klasa naziva se podređena klasa ili podrazred.

Sintaksa Java nasljeđivanja je sljedeća.

klasa subclass_name proširiva superclass_name

varijabilna deklaracija;

deklaracija metode;

Koncept nasljeđivanja može se objasniti sljedećim primjerom. Pretpostavimo da postoji klasa nazvana A kako slijedi.

javna klasa A

javna nevaljala svota ()

Sustava ( „suma”);

Ako želimo dodati novu metodu bez promjene postojeće klase, možemo to učiniti na sljedeći način.

javna klasa B

javno nevažeće sub ()

Sustava ( „sub”);

Programer može naslijediti da koristi zbroj klase A ().

javna klasa B proširuje klasu A

javno nevažeće sub ()

Sustava ( „sub”);

U glavnoj funkciji moguće je stvoriti objekt B i call sub (), koji pripada klasi B i sum (), koji pripada klasi A pomoću nasljeđivanja.

javni statički void main (String [] args)

B obj = novi B ();

obj.sub ();

obj.sum ();

Postoje različite vrste nasljeđivanja. To su jedno nasljedstvo, višestruko nasljeđivanje, višeslojno nasljeđivanje i hijerarhijsko nasljeđivanje. U jedno nasljedstvo, postoji jedna osnovna klasa i jedna izvedena klasa. U nasljeđivanje na više razina, postoje tri klase, naime osnovna klasa, srednja klasa i izvedena klasa. Srednja klasa nasljeđuje od osnovne klase, a izvedena klasa nasljeđuje od srednje klase. U hijerarhijsko nasljeđivanje, postoji jedna osnovna klasa i mnoge izvedene klase. Postoji posebna vrsta poznata kao Hibridno nasljeđivanje. To je kombinacija dvije ili više vrsta nasljeđivanja.

Slika 01: Nasljeđivanje

U Višestruko nasljeđivanje postoji mnogo osnovnih razreda i jedna izvedena klasa. Pretpostavimo da su klase A i B osnovne klase. Klasa C je izvedena klasa. Ako i klase A i B imaju istu metodu, a programer tu metodu nazove iz izvedene klase, to će uzrokovati problem nejasnoće. Nasljeđivanje dvije klase može uzrokovati pogrešku u vremenu prevođenja. Stoga višestruko nasljeđivanje ne podržava u Javi. Za rješavanje tog problema može se koristiti sučelje.

Što je sučelje u Javi?

Apstrakcija je postupak sakrivanja detalja implementacije i prikaza korisniku samo funkcionalnosti. Apstrakcija se može postići pomoću apstraktnih razreda ili sučelja. Apstraktna metoda je metoda bez provedbe. Razred s najmanje jednom apstraktnom metodom je apstraktna klasa. Primjer apstraktne klase je kako slijedi.

apstraktna klasa A

apstraktna praznina ();

Pretpostavimo da postoje dvije apstraktne klase kao A i B. Za primjenu apstraktnih metoda A i B stvorena je nova klasa C. Tada bi klasa C trebala proširiti i A i B. No, višestruko nasljeđivanje nije podržano u Javi. Stoga treba koristiti sučelja. Sučelja se mogu koristiti za deklariranje metoda, ali nije moguće definirati metode. Nije moguće stvoriti objekt pomoću sučelja. Klasa C treba implementirati sve metode u sučeljima A i B.

sučelje A

nevažeća svota ();

sučelje B

void sub ();

izvedbe klase C A, B

javna nevaljala svota ()

Sustava ( „zbrajanja”);

javno nevažeće sub ()

Sustava ( „oduzimanje”);

Sada je u glavnom programu moguće stvoriti objekt C i nazvati obje metode.

javni statički void main (String [] args)

C obj = novi C ();

obj.sum ();

obj.sub ();

Dakle, sučelja se mogu koristiti za implementaciju višestrukog nasljeđivanja.

Druga uporaba sučelja je da pruža sigurnost. Pogledajte donji kôd.

sučelje A

nevažeća svota ();

klasa B realizira A

javna nevaljala svota ()

Sustava ( „zbrajanja”);

javno nevažno množenje ()

Sustava ( „množenje”);

Prilikom stvaranja objekta B moguće je obje metode zvati zbroj () i množenje (). Ako se programer želi ograničiti pomoću funkcije množenja (), moguće je na sljedeći način.

javni statički void main (String [] args)

A obj = novi B ();

obj.sum ();

A obj = novi B (); stvorit će objekt. To je tipa A, a memorija je dodijeljena kao B. Moguće je zvati sum (), ali ne može izvršiti množenje (). Ovo se ograničenje vrši pomoću sučelja.

Koje su sličnosti između nasljeđivanja i sučelja u Javi?

  • Oba koncepta povezana su s objektno-orijentiranim programiranjem
  • Oboje predstavljaju IS-A vezu.

Koja je razlika između nasljeđivanja i sučelja u Javi?

Nasljeđivanje vs sučelje na Javi

Nasljeđivanje je OOP koncept za dobivanje novih klasa iz postojećih klasa. Sučelje je mehanizam u OOP-u za implementaciju apstrakcije i višestrukog nasljeđivanja.
upotreba
Nasljeđivanje omogućuje ponovnu upotrebu koda. Sučelja pružaju apstrakciju i višestruko nasljeđivanje.

Sažetak - Nasljeđivanje vs sučelje na Javi

Java je programski jezik s više paradigmi koji podržava objektno orijentirano programiranje. Nasljeđivanje i sučelja povezana su s objektno orijentiranim programiranjem. Razlika između nasljeđivanja i sučelja je u tome što je nasljeđivanje poticati nove klase iz postojećih klasa i sučelja je u primjeni apstraktnih klasa i višestrukog nasljeđivanja.

Preuzmite PDF verziju Nasljeđivanje vs sučelje na Javi

Možete preuzeti PDF verziju ovog članka i koristiti je za izvanmrežne svrhe, prema napomeni. Molimo preuzmite PDF verziju ovdje Razlika između nasljeđivanja i sučelja na Javi

Referenca:

1.Point, Vodiči. "Nasljeđivanje Java"., Tutorials Point, 31. listopada 2017. Dostupno ovdje 
2.Point, Vodiči. "Sučelja Java." , Tutorials Point, 31. listopada 2017. Dostupno ovdje 

Ljubaznošću slike:

1.'CPT-OOP-nasledstvo-bicikli 'Pluke - Vlastiti rad, (Public Domain) putem Commons Wikimedia