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.
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
Abstrakt klasse, grensesnitt, flere arv
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".
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!".
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.
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.
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.
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.
Det abstrakte søkeordet brukes også til å erklære den abstrakte klassen, men grensesnittet er brukt til å deklarere et grensesnitt.
I tillegg kan en abstrakt klasse utvides ved hjelp av søkeordet "strekker seg". En grensesnittklasse kan implementeres ved hjelp av søkeordet "redskaper".
Videre kan abstrakt klasse være implementert ved hjelp av søkeord "redskaper", mens grensesnitt brukes til å implementere abstraksjon så vel som flere arv.
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.
1. "Abstrakt klasse i Java - Javatpoint." Www.javatpoint.com, Tilgjengelig her.
2. "Grensesnitt i Java - Javatpoint." Www.javatpoint.com, Tilgjengelig her.