Java gir flere måter å gi data abstraksjon på, for eksempel Java -grensesnitt og Java abstrakte klasser. Både grensesnitt og abstrakt klasse gir sikkerhet ved å skjule de interne implementeringsdetaljene og bare vise/fremheve de nødvendige detaljene. Imidlertid er det mange likheter og distinksjoner mellom abstrakte klasser og grensesnitt.
Dette innlegget vil hjelpe deg i de nedenfor-listede aspektene ved Java-grensesnitt og abstrakte klasser:
Så la oss begynne!
Hva er et Java -grensesnitt
Det er en mal for en klasse som inneholder noen abstrakte metoder og statiske/endelige variabler. I Java gir grensesnitt bare metodedeklarasjon, mens barn/implementerte klasser gir metodedefinisjonen.
Hva er en Java -abstrakt klasse
Enhver Java -klasse som har minst en abstrakt (eneste metodedeklarasjon) -metode er kjent som en abstrakt klasse i Java.
Sammenligning basert på likheter
Noen viktige aspekter ved Java -grensesnitt og abstrakte klasser er listet opp nedenfor:
Java Abstract Class vs Java -grensesnitt
Nøkkelordene "abstrakte" og "grensesnitt" brukes i Java for å lage/erklære de abstrakte klassene, og grensesnitt.
I grensesnitt anses alle medlemmer som offentlige som standard, så det er ikke nødvendig å spesifisere tilgangsmodifisereren for medlemmene av grensesnitt. Mens det er i abstrakte klasser er det ingen slik begrensning, og derfor kan noen tilgangsmodifiserer brukes til medlemmene i abstrakte klasser som offentlig, beskyttet osv.
Den grunnleggende syntaks for en abstrakt klasse og et grensesnitt er vist i de undergitte utdragene:
Abstrakt klasse
offentlig abstrakt klassenavnGrensesnitt
offentlig grensesnitt grensesnittGrensesnittene må ha alle abstrakte metoder, mens de abstrakte klassene kan ha både abstrakte og ikke-abstrakte metoder.
Grensesnittet kan bare ha statiske medlemmer, mens abstrakte klasser kan ha statiske og ikke-statiske medlemmer.
Grensesnitt har bare "endelige" (uforanderlige) medlemmer mens abstrakte klasser kan ha endelige og ikke-endelige medlemmer.
Grensesnitt har ingen konstruktør mens abstrakte klasser har brukerdefinerte eller standardkonstruktører.
Flere arv kan oppnås ved hjelp av grensesnitt mens abstrakte klasser ikke støtter flere arv.
I Java kan den abstrakte klassen arve en annen klasse og kan implementere mange grensesnitt, derimot kan et Java -grensesnitt bare utvide et annet grensesnitt.
Eksempel
Det undergitte eksemplet lar deg forstå hvordan grensesnitt og abstrakte klasser fungerer i Java:
grensesnitt første interfaceI dette eksemplet opprettet vi et grensesnitt “FirstInterface”, en abstrakt klasse “AbstractClass”, og ytterligere to normale Java -klasser og utførte følgende funksjonaliteter:
De Grensesnitt er hovedklassen der vi opprettet hovedmetoden og påkalte alle metodene til FirstInterface:
Output bekreftet arbeidet med det ovennevnte Java-programmet.
Konklusjon
I Java kan abstraksjon oppnås ved bruk av abstrakte klasser og grensesnitt, og begge kan ikke bli instantiert. Imidlertid er det flere distinksjoner mellom abstrakte klasser og grensesnitt. For eksempel må grensesnittene ha alle abstrakte metoder mens de abstrakte klassene kan ha abstrakte og ikke-abstrakte metoder; Ved hjelp av grensesnitt kan flere arv oppnås mens abstrakte klasser ikke støtter flere arv osv. Dette innlegget forklarte ulike aspekter ved abstrakte klasser og grensesnitt ved hjelp av passende eksempler.