Hva er forskjellen mellom abstrakt klasse og grensesnitt i Java

De hovedforskjell mellom abstrakt klasse og grensesnitt i Java er at abstrakt klasse brukes til å implementere abstraksjon mens grensesnitt brukes til å implementere abstraksjon så vel som flere arv.

En stor søyle i Objektorientert Programmering (OOP) er Abstraksjon. Det er prosessen med å gjemme implementasjonsdetaljer og bare vise funksjonaliteten til brukeren. For eksempel trenger brukeren ikke å forstå kretsene inne i fjernkontrollen for å betjene den. Abstraksjon ligner det. Det gjør at programmereren kan fokusere på hva objektet gjør i stedet for hvordan det gjøres. I Java er det to metoder for å oppnå abstraksjon: ved å bruke abstrakte klasser og ved hjelp av grensesnitt. Videre er arv en annen OOP-søyle. Det refererer til bruk av data og metoder for en allerede eksisterende klasse. Flere arv refererer til bruk av data og metoder for flere klasser. Det er mulig å implementere flere arv ved hjelp av grensesnitt.

Nøkkelområder dekket

1. Hva er Abstract Class i Java
     - Definisjon, funksjonalitet
2. Hva er grensesnitt i Java
     - Definisjon, funksjonalitet
3. Hva er forskjellen mellom abstrakt klasse og grensesnitt i Java
     - Sammenligning av nøkkelforskjeller

Nøkkelord

Abstrakt klasse, grensesnitt, flere arv

Hva er Abstract Class i Java

En klasse som er erklært med det abstrakte søkeordet, kalles en abstrakt klasse. En abstrakt klasse kan ha abstrakte metoder og ikke-abstrakte metoder. En klasse kan forlenge en abstrakt klasse og implementere abstrakte klassens abstrakte metoder. Det er ikke mulig å lage objekter fra en abstrakt klasse, men det er mulig å lage objekter fra en klasse som utvider abstrakt klassen. Se eksemplet nedenfor.

Figur 1: Form abstrakt klasse

Figur 2: Rektangel klasse

Figur 3: Hovedklasse for program 1

Form er en abstrakt klasse. Den har den abstrakte metoden tegne og ikke-abstrakt metodevisning. Rektangelklassen utvider form. Derfor implementerer rektangelklassen den abstrakte metoden tegnet. I hovedfunksjonen opprettes et rektangelobjekt. Obj.draw () vil kalle metoden i rektangel tegning () og den vil skrive ut "rektangel".  

Hva er grensesnitt i Java

Et grensesnitt i Java ligner en klasse. Alle metoder i et grensesnitt er abstrakte metoder. I likhet med en abstrakt klasse, kan et grensesnitt ikke bli instantiated. Et grensesnitt kan brukes til abstraksjon så vel som for implementering av flere arv. Et grensesnitt er erklært ved hjelp av grensesnittet søkeord. En klasse som implementerer grensesnittet, bør implementere alle metodene som er oppgitt i grensesnittet. Se eksemplet nedenfor som illustrerer bruken av grensesnitt for å oppnå abstraksjon.

Figur 4: Form-grensesnitt

Figur 5: Sirkelklasse

Figur 6: Hovedklasse av program 2

Form er et grensesnitt, som har en abstrakt metode kalt tegning. Sirkelklassen utvider form. Derfor implementerer sirkelklassen den abstrakte metoden tegning. I hovedfunksjonen opprettes et sirkelobjekt. S.draw () vil kalle metoden tegne i Circle og den vil skrive ut "Circle". 

Grensesnitt kan også brukes til å gjennomføre flere arv.

Figur 7: Grensesnitt A

Figur 8: Grensesnitt B

Figur 9: Klasse C

Figur 10: Hovedklasse av program 3

Grensesnitt A og B har begge en abstrakt metodevisning. Klasse C implementerer både grensesnitt A og B. Klasse C gir implementering for metodevisning. I hovedmetoden er et objekt av C opprettet. Obj.displayet vil ringe skjermmetoden i C og skrive ut "Hello World!".

Forskjellen mellom abstrakt klasse og grensesnitt i Java

Definisjon

En abstrakt klasse er en klasse erklært med et abstrakt søkeord, som er en samling av abstrakte og ikke-abstrakte metoder. I motsetning er et grensesnitt i Java en referansetype som ligner en klasse som er en samling av abstrakte metoder. Dette er grunnforskjellen mellom abstrakt klasse og grensesnitt i Java.

variabler

De anvendte variablene er en forskjell mellom abstrakt klasse og grensesnitt i Java. Mens en abstrakt klasse kan ha endelige, ikke-endelige, statiske og ikke-statiske variabler, kan et grensesnitt bare ha statiske og endelige variabler.

metoder

En annen forskjell mellom abstrakt klasse og grensesnitt i Java er at abstrakt klasse kan ha abstrakte metoder og ikke-abstrakte metoder, mens grensesnittet kun kan ha abstrakte metoder.

Flere arv

Videre kan abstrakte klasser ikke brukes til å gjennomføre flere arv. Men grensesnitt kan brukes til å implementere flere grensesnitt. Derfor kan vi si anvendelighet som en forskjell mellom abstrakt klasse og grensesnitt i Java.

Søkeord for klassen

Det abstrakte søkeordet brukes også til å erklære den abstrakte klassen, men grensesnittet er brukt til å deklarere et grensesnitt. 

Utvidelse og implementering

I tillegg kan en abstrakt klasse utvides ved hjelp av søkeordet "strekker seg". En grensesnittklasse kan implementeres ved hjelp av søkeordet "redskaper".

Gjennomføring

Videre kan abstrakt klasse være implementert ved hjelp av søkeord "redskaper", mens grensesnitt brukes til å implementere abstraksjon så vel som flere arv.

Konklusjon

Forskjellen mellom abstrakt klasse og grensesnitt i java er at abstrakt klasse brukes til å implementere abstraksjon mens grensesnitt brukes til å implementere abstraksjon så vel som multiple arv.

Henvisning:

1. "Abstrakt klasse i Java - Javatpoint." Www.javatpoint.com, Tilgjengelig her.
2. "Grensesnitt i Java - Javatpoint." Www.javatpoint.com, Tilgjengelig her.