Abstrakt Klasse vs Grensesnitt
Hvilken bør du velge?
Fra de forrige kapitlene har du kanskje lagt merke til at abstract classes og interfaces er ganske like. Det finnes imidlertid forskjeller mellom dem. For å gjøre det kort, kan det sies at i praksis foretrekkes ofte grensesnitt fremfor abstrakte klasser. Men la oss forstå hvorfor dette er tilfellet.
Hva er forskjellen?
Først må vi forstå forskjellene mellom en abstrakt klasse og et grensesnitt. La oss gå gjennom listen:
- Syntaks:
abstract classved deklarering av en abstrakt klasse oginterfaceved deklarering av et grensesnitt; - Arv-nøkkelord:
extendsfor å arve en abstrakt klasse, ogimplementsfor å arve et grensesnitt; - Navn på subklasser: En subklasse av en
abstract classkalles en subklasse eller arvende klasse, mens en subklasse av etinterfacekalles en klasse - implementasjon; - Antall arv: Du kan arve fra kun én abstrakt klasse, mens du kan arve fra flere grensesnitt;
- En
abstract classkan ha både implementerte og abstrakte metoder. Fra og med Java 8 kan grensesnitt også hadefault-metoder, som vi skal diskutere senere i denne seksjonen; - Metoder i en abstrakt klasse kan ha hvilken som helst tilgangsmodifikator, mens i grensesnitt er kun tilgangsmodifikatoren
publictillatt.
Merk
Vi kan også samtidig arve fra en abstrakt klasse og implementere et grensesnitt. Først bruker vi nøkkelordet
extends, og deretter bruker viimplements. Syntaksen ser slik ut:class ClassName extends AbstractClass implements Interface {}
Enkelt sagt kan du tenke på en abstrakt klasse som en klasse som gir noe funksjonalitet og håndhever visse regler, men lar noen deler være igjen for subklassene å fullføre. Et grensesnitt, derimot, er som en sjekkliste som en klasse må oppfylle, og spesifiserer hvilke metoder den må ha, uten å gi noen faktisk kode.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.76
Abstrakt Klasse vs Grensesnitt
Sveip for å vise menyen
Hvilken bør du velge?
Fra de forrige kapitlene har du kanskje lagt merke til at abstract classes og interfaces er ganske like. Det finnes imidlertid forskjeller mellom dem. For å gjøre det kort, kan det sies at i praksis foretrekkes ofte grensesnitt fremfor abstrakte klasser. Men la oss forstå hvorfor dette er tilfellet.
Hva er forskjellen?
Først må vi forstå forskjellene mellom en abstrakt klasse og et grensesnitt. La oss gå gjennom listen:
- Syntaks:
abstract classved deklarering av en abstrakt klasse oginterfaceved deklarering av et grensesnitt; - Arv-nøkkelord:
extendsfor å arve en abstrakt klasse, ogimplementsfor å arve et grensesnitt; - Navn på subklasser: En subklasse av en
abstract classkalles en subklasse eller arvende klasse, mens en subklasse av etinterfacekalles en klasse - implementasjon; - Antall arv: Du kan arve fra kun én abstrakt klasse, mens du kan arve fra flere grensesnitt;
- En
abstract classkan ha både implementerte og abstrakte metoder. Fra og med Java 8 kan grensesnitt også hadefault-metoder, som vi skal diskutere senere i denne seksjonen; - Metoder i en abstrakt klasse kan ha hvilken som helst tilgangsmodifikator, mens i grensesnitt er kun tilgangsmodifikatoren
publictillatt.
Merk
Vi kan også samtidig arve fra en abstrakt klasse og implementere et grensesnitt. Først bruker vi nøkkelordet
extends, og deretter bruker viimplements. Syntaksen ser slik ut:class ClassName extends AbstractClass implements Interface {}
Enkelt sagt kan du tenke på en abstrakt klasse som en klasse som gir noe funksjonalitet og håndhever visse regler, men lar noen deler være igjen for subklassene å fullføre. Et grensesnitt, derimot, er som en sjekkliste som en klasse må oppfylle, og spesifiserer hvilke metoder den må ha, uten å gi noen faktisk kode.
Takk for tilbakemeldingene dine!