Razlika između apstraktne klase i sučelja u Javi

Apstraktna klasa i sučelje primarno se koriste za apstrakciju, ali se međusobno vrlo razlikuju. Obje su jezgre Java, ali imaju vlastite primjene. Iako oba pojma mogu biti sinonimi jedni s drugima, ne mogu se koristiti naizmjenično.

Između njih postoje značajne razlike. Iako je metoda sučelja prema zadanim postavkama apstraktna , sažetak može sadržavati i apstraktne i apstraktne metode. Pa, od Jave 8, sučelja također imaju implementacije metoda i u Javi mogu imati i statičke i zadane metode . Detaljno proučimo razliku između njih dvoje.



Razlika između apstraktne klase i sučelja u Javi



Što je apstraktni razred u Javi?

Apstraktna klasa u Javi je klasa koja se proglašava apstraktnom - može sadržavati ili ne sadržavati apstraktne metode. Prilično je sličan Java sučelju, osim činjenice da može sadržavati zadanu implementaciju metode. Kao i u objektno orijentiranom programiranju, apstrakcija u Javi postiže se pomoću apstraktnih klasa i sučelja. U Javi apstrakcija znači skrivanje nebitnih detalja od korisnika kako bi se usredotočio samo na bitne detalje kako bi se povećala učinkovitost i smanjila složenost. Ključna riječ 'abstract' koristi se za stvaranje apstraktne klase neposredno prije ključne riječi class u deklaraciji klase.

Apstraktna klasa može ili ne mora sadržavati metode apstrakcije (metode bez tijela), ali ako klasa ima barem jednu metodu apstrakcije, mora se proglasiti apstraktnom. Međutim, ne-apstraktne metode mogu se također koristiti samo u apstraktnoj klasi, ali samo za provedbu zadanog ponašanja. Metode u apstraktnoj klasi mogu imati modifikatore pristupa kao što su privatni, javni, statički i zaštićeni, ovisno o razini vidljivosti. Apstraktna se klasa ne može instancirati i ne pruža 100-postotnu apstrakciju zbog činjenice da može imati konkretnu metodu.



Što je sučelje?

Sučelje iako izgleda kao klasa, nije. Budući da Java ne podržava više nasljeđa, sučelje je ponekad idealno za pružanje baze za hijerarhiju klasa. Sučelje je više nacrt klase koja se također koristi za postizanje apstrakcije u Javi. Sadrži apstraktne metode i statičke konstante. Jednostavno rečeno, sučelje je zbirka apstraktnih metoda koja se koristi za specificiranje ponašanja koje klasa mora implementirati. Za razliku od apstraktne klase, sučelje pruža potpunu apstrakciju u Javi. Može imati i metode i varijable poput klase, međutim metode deklarirane u sučelju su prema zadanim postavkama apstraktne.

Razlika između apstraktne klase i sučelja u Javi

  1. 'Višestruko nasljeđivanje' apstraktne klase i sučelja u Javi- Unatoč činjenici da se i apstraktna klasa i sučelje prvenstveno koriste za apstrakciju, međusobno se prilično razlikuju. Dok je apstraktna klasa klasa, sučelje je sučelje. To znači da dok sučelje može proširiti samo drugo Java sučelje, apstraktna klasa može implementirati više nasljeđa u Java. Pa, Java ne podržava više nasljeđa, ali u Java se može implementirati više nasljeđa.
  2. “Vrsta metode” apstraktne klase i sučelja u Javi- Druga glavna razlika između njih je da, iako sučelje može imati samo apstraktne metode, apstraktna klasa može imati i apstraktne i neastraktne metode. Međutim, od Java 8, sučelje može imati zadane i statičke metode.
  3. “Modifikatori pristupa” apstraktne klase i sučelja na Javi- Apstraktna klasa može imati javne, privatne i zaštićene modifikatore pristupa, međutim metode sučelja su implicitno javne i apstraktne. Ne možete koristiti nijedan drugi modifikator pristupa s metodama sučelja ’.
  4. “Implementacija” apstraktne klase i sučelja u Javi- Apstraktna klasa može pružiti implementaciju sučelja. Sučelje, s druge strane, ne može osigurati provedbu apstraktne klase.
  5. 'Ključna riječ' apstraktne klase i sučelja na Javi- Iako se ključna riječ 'abstract' koristi za proglašavanje metode apstraktne klase apstraktnom, međutim, sučelja su potpuno druga priča; mogu imati samo javne, statičke konačne konstante i deklaracije metoda.
  6. 'Uporaba' apstraktne klase i sučelja u Javi- Iako je sučelje idealno za deklaraciju tipa, apstraktna klasa je najprikladnija za ponovnu upotrebu koda i perspektivu evolucije. Sučelje izgleda kao klasa, ali nije klasa.
  7. 'Pouzdanost' apstraktne klase i sučelja u Javi- Još jedna glavna razlika između apstraktne klase i sučelja je ta što je prva nešto brža od druge jer je pretraživanje obično uključeno u sučelje prije nego što se bilo koja nadjačana metoda pozove u Javi.
  8. “Završne varijable” apstraktne klase i sučelja na Javi- Varijable deklarirane u sučelju su prema zadanim postavkama konačne, dok apstraktna klasa može ili ne mora sadržavati ne-konačne varijable.

Apstraktna klasa vs sučelje u Javi: Tablica za usporedbu

Sažetak klase Sučelje
Ključna riječ Abstract koristi se za stvaranje apstraktne klase i može se koristiti s metodama. Ključna riječ sučelje koristi se za stvaranje sučelja, ali se ne može koristiti s metodama.
Predmet može proširiti samo jedan apstraktni razred. Klasa može implementirati više od jednog sučelja.
Apstraktna klasa može imati i apstraktne i apstraktne metode. Sučelje može imati samo apstraktne metode.
Varijable prema zadanim postavkama nisu konačne. Može sadržavati ne-konačne varijable. Varijable su prema zadanim postavkama konačne u sučelju.
Apstraktna klasa može pružiti implementaciju sučelja. Sučelje ne može osigurati implementaciju apstraktne klase.
Može imati metode s implementacijama. Pruža apsolutnu apstrakciju i ne može imati implementacije metoda.
Može imati javne, privatne, statičke i zaštićene modifikatore pristupa. Metode su implicitno javne i apstraktne u Java sučelju.
Ne podržava više nasljedstava. Podržava više nasljeđa.
Idealno je za ponovnu upotrebu koda i perspektivu evolucije. Idealno je za deklaraciju tipa.

Sažetak o apstraktnoj klasi i sučelju u Javi

Za apstrakciju se koriste i apstraktna klasa i sučelje; međutim, oni imaju svoj priličan udio u razlikama. Glavna razlika između njih dvoje je metoda apstrakcije. Dok prvi može ili ne mora imati apstraktne metode, drugi je implicitno apstraktan. Apstraktna klasa može imati i apstraktne i apstraktne metode. Sučelje, s druge strane, može imati samo apstraktne metode, stoga ne može imati implementaciju, što jednostavno znači da sučelje ne može imati apstraktne metode. Ne može se instancirati apstraktna klasa koja zabranjuje stvaranje objekta. Sučelje, s druge strane, može izgledati kao klasa, ali nije.

Popularni Postovi

Razlika između katolika i baptista

Katolički vs baptistički Ljudi se često miješaju između vjerskih skupina katolika i baptista. Međutim, dvije religije dijele vrlo često uvjerenje '' obje



Razlika između sladoleda i smrznutog jogurta

Sladoled protiv smrznutog jogurta Sladoled i smrznuti jogurt zamrznuti su deserti u kojima uživaju ljudi širom svijeta i dijele mnoge sličnosti i

Izvedite sve !: Bitka kod Kham Duca

U svibnju 1968. više od 1500 bilo je okruženo neprijateljem koji napreduje kod Kham Duca

Razlika između rotacije Zemlje i revolucije

Zemljina rotacija vs revolucija Rotacija zemlje opisuje okretanje zemlje oko svoje osi, što rezultira 24-satnim fenomenom dana i noći

Popis rata: Veliki zapovjednici tenkova

Odabiremo osam vrhunskih tankera - od Monasha do Wittmanna do Greengolda

Razlika između matica i vijaka

Matice i vijci Mnogi ljudi odlaze u prodavaonice hardvera tražeći određene matice ili vijke, a da zapravo ne znaju točno što im treba. U ovakvim slučajevima, to