Apstrakcija se smatra jednom od najvažnijih značajki objektno orijentiranog programiranja. Pomaže sakriti implementacijske složenosti nudeći funkcionalnosti kroz dostupna sučelja.
Za postizanje apstrakcije u Javi naširoko se koriste apstraktne klase i sučelja. Primjena apstraktne klase i sučelja razlikuju se jedna od druge.
Ključni za poneti
- Apstraktne klase dopuštaju djelomičnu implementaciju, dok sučelja ne pružaju nikakvu implementaciju.
- Klasa može naslijediti samo jednu apstraktnu klasu, ali implementirati više sučelja.
- Apstraktne klase mogu imati konstruktore, polja i neapstraktne metode, dok sučelja ne mogu.
Apstraktna klasa vs sučelje u Javi
Razlika između apstraktne klase i sučelja u JJavi je u tome što se apstraktna klasa odnosi na korisnički definirani tip koji radi kao nacrt za stvaranje objekta. Apstraktna klasa ima metode i svojstva koja predstavljaju ponašanja i stanja objekta. S druge strane, sučelje se odnosi na korisnički definirani tip koji može imati skup potpisa metoda i konstanti polja nadjačanih klasama koje implementira sučelje.
Apstraktna klasa odnosi se na klasu koja uključuje apstraktnu ključnu riječ u svojoj deklaraciji. Pomaže u razvoju nacrta za konkretne razrede.
Trebao bi imati najmanje jednu apstraktnu metodu, poput metode koja nema tijelo. Apstraktna klasa može imati nekoliko konkretnih metoda. Svojim korisnicima omogućuje ponovnu upotrebu kodova.
Sučelje se odnosi na nacrt koji se koristi za implementaciju klase. Konkretne metode ili metode s kodom nisu uključene u sučelje. U sučelje su uključene samo apstraktne metode ili metode bez koda.
Instanciranje sučelja je nemoguće, ali se klase sučelja koje implementiraju klase mogu lako instancirati.
Tabela za usporedbu
Parametri usporedbe | Apstraktna klasa u Javi | Sučelje u Javi |
---|---|---|
Riječ | Za deklariranje apstraktne klase koristi se ključna riječ abstract. | Za deklaraciju sučelja koristi se ključna riječ interfejs. |
Metode | I neapstraktne i apstraktne metode mogu biti prisutne u apstraktnoj klasi. | U sučelju se može prikazati samo apstraktna metoda. Od tada također može imati statičke i zadane metode Java 8. |
Varijable | Apstraktna klasa ne podržava višestruko nasljeđivanje. | Samo finalne i statičke varijable mogu biti prisutne u sučelju. |
Nasljeđivanje | Sučelje podržava višestruko nasljeđivanje. | Još jedna java može se proširiti i apstraktna klasa može implementirati više java sučelja. |
Nastavak | Samo drugo sučelje u Javi može se proširiti sučeljem. | Samo drugo sučelje u Javi ima mogućnost proširenja sučeljem. |
Što je apstraktna klasa u Javi?
U Javi, apstraktna klasa je klasa koja je deklarirana ključnom riječi abstract. I neapstraktne i apstraktne metode mogu biti uključene u sažetak klasa u Java.
Općenito, apstraktna klasa odnosi se na predložak koji se koristi za pohranu korisnih metoda programskih podataka i članova. U Javi, instanciranje apstraktne klase nije moguće izravno. Umjesto toga, apstraktna klasa može biti podrazred.
Apstraktna klasa omogućuje programerima da sakriju implementaciju koda, što im pomaže da glatko izvrše proces apstrakcije podataka.
Također štedi vrijeme kodiranja. Apstraktna metoda može se pozvati bilo gdje tijekom kodiranja i izbjegava ponavljanje koda.
Dok koristite apstraktne klase u Javi, najvažnija pravila su:
- Prilikom deklariranja apstraktne klase vrlo je važno imati ključnu riječ "abstract".
- U Javi, instanciranje apstraktne klase nije moguće izravno. U apstraktnoj klasi potrebna je najmanje jedna apstraktna metoda.
- Završne metode također su uključene u apstraktnu klasu.
- Statičke metode i metode konstruktora mogu se uključiti u apstraktnu klasu.
Glavne prednosti apstraktne klase u Javi su da je vrlo korisna u pisanju kodova kratke duljine i također izostavlja mogućnost dupliciranja koda. Također omogućuje ponovnu upotrebu koda.
Što je sučelje u Javi?
Poput apstraktne klase, sažetak u Javi može imati varijable i metode. Ali u sučelju, deklarirane metode su prema zadanim postavkama, apstraktne.
Određuje kako i što apstraktna klasa mora raditi. Smatra se nacrtom apstraktne klase. Ima kolekciju metoda koje klasa možda neće ili može primijeniti.
Sučelje u Javi se koristi za postizanje potpune apstrakcije. Također može imati višestruko nasljeđivanje koje nije podržano u apstraktnim klasama.
Sučelje se također koristi za postizanje labave veze. Sučelja se široko koriste u obrascima Java dizajna i mogu obavljati funkciju.
Metode sučelja nemaju nikoga. To je mehanizam koji se uglavnom koristi za postizanje višestrukog nasljeđivanja i apstrakcije u Javi.
Glavna svojstva Java sučelja su –
- Sučelje u Javi potpuno je apstraktno. Apstraktne ključne riječi nisu potrebne prilikom deklariranja sučelja u Javi.
- Svaka od metoda sučelja također je potpuno apstraktna. Kao rezultat toga, nema potrebe za korištenjem apstraktnih ključnih riječi prilikom deklariranja metoda sučelja.
- Svaka metoda sučelja potpuno je javna.
Glavna prednost sučelja u Javi je ta što se može koristiti za postizanje apstrakcije podataka i također može se koristiti za podršku multi-baština funkcionalnosti u Javi. Također se koristi u labavom spoju.
Glavne razlike između apstraktne klase i sučelja u Javi
- I neapstraktne i apstraktne metode mogu biti prisutne u apstraktnoj klasi. S druge strane, u sučelju se mogu prikazati samo apstraktne metode. Također može imati statičke i zadane metode od Jave 8.
- Apstraktna klasa može imati nestatičke, statičke, nefinalne i konačne varijable. Samo finalne i statičke varijable mogu biti prisutne u sučelju.
- Za deklariranje apstraktne klase koristi se ključna riječ abstract. Za deklaraciju sučelja koristi se ključna riječ interfejs.
- Apstraktna klasa ne podržava višestruko nasljeđivanje. Višestruko nasljeđivanje, naprotiv, podržava sučelje.
- Još jedna java može se proširiti i više java sučelja može se implementirati pomoću apstraktne klase. Ipak, samo još jedno sučelje u Javi ima mogućnost proširenja sučeljem.
- https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=abstract+class+in+java&btnG=#d=gs_qabs&u=%23p%3DW3WgwQb0NOAJ
- https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=interface+in+java&btnG=#d=gs_qabs&u=%23p%3Dzhwh3VcdqSkJ
Zadnje ažuriranje: 11. lipnja 2023
Sandeep Bhandari ima diplomu inženjera računala na Sveučilištu Thapar (2006.). Ima 20 godina iskustva u području tehnologije. Ima veliki interes za razna tehnička područja, uključujući sustave baza podataka, računalne mreže i programiranje. Više o njemu možete pročitati na njegovom bio stranica.
Ovo je dojmljiv članak, objašnjenja su tako jasna i koncizna. Vrlo dobro učinjeno.
Možemo li zastati na trenutak i nasmijati se tome kako akademici pišu? Smiješan je, ali sjajan članak.
Usporedba između apstraktnih klasa i sučelja prilično je korisna. Tražio sam ovakav članak.
Vjerujem da mi je ovaj članak mogao pomoći u mom zadnjem projektu. Ali to je dobra referenca za sljedeći.
Mislim da ovaj članak nije toliko koristan kao što kažete. Mislim da mu nedostaje dubinsko objašnjenje.
Bilo bi bolje da navedete neke primjere koda. Iako su objašnjenja dobra.