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 | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Java Objektorienterte Programmeringsgrunnlag

bookAbstrakt 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 å gå rett på sak, kan det sies at i praksis foretrekkes ofte grensesnitt fremfor abstrakte klasser. Men la oss forstå hvorfor det er slik.

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å underklasser: En underklasse av en abstract class kalles en subklasse eller arvende klasse, mens en underklasse 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 pålegger visse regler, men lar noen deler være igjen for underklassene å 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 1. Kapittel 22

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

Seksjon 1. Kapittel 22
some-alt