Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Abstrakt Klasse vs Grensesnitt | Interface
Java OOP
course content

Kursinnhold

Java OOP

Java OOP

1. Hvordan Arbeide med IDE?
2. Oop
3. Interface

book
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 class ved deklarering av en abstrakt klasse og interface ved deklarering av et grensesnitt;

  • Arv-nøkkelord: extends for å arve en abstrakt klasse, og implements for å arve et grensesnitt;

  • Navn på subklasser: En subklasse av en abstract class kalles en subklasse eller arvende klasse, mens en subklasse av et interface kalles en klasse - implementasjon;

  • Antall arv: Du kan arve fra kun én abstrakt klasse, mens du kan arve fra flere grensesnitt;

  • En abstract class kan ha både implementerte og abstrakte metoder. Fra og med Java 8 kan grensesnitt også ha default-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 public tillatt.

Merk

Vi kan også samtidig arve fra en abstrakt klasse og implementere et grensesnitt. Først bruker vi nøkkelordet extends, og deretter bruker vi implements. 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.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

Java OOP

Java OOP

1. Hvordan Arbeide med IDE?
2. Oop
3. Interface

book
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 class ved deklarering av en abstrakt klasse og interface ved deklarering av et grensesnitt;

  • Arv-nøkkelord: extends for å arve en abstrakt klasse, og implements for å arve et grensesnitt;

  • Navn på subklasser: En subklasse av en abstract class kalles en subklasse eller arvende klasse, mens en subklasse av et interface kalles en klasse - implementasjon;

  • Antall arv: Du kan arve fra kun én abstrakt klasse, mens du kan arve fra flere grensesnitt;

  • En abstract class kan ha både implementerte og abstrakte metoder. Fra og med Java 8 kan grensesnitt også ha default-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 public tillatt.

Merk

Vi kan også samtidig arve fra en abstrakt klasse og implementere et grensesnitt. Først bruker vi nøkkelordet extends, og deretter bruker vi implements. 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.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt