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

Kursusindhold

Java OOP

Java OOP

1. Hvordan Man Arbejder Med IDE?
2. OOP
3. Interface

book
Abstrakt Klasse vs Interface

Hvilken skal man vælge?

Fra de foregående kapitler har du måske bemærket, at abstract classes og interfaces er meget ens. Der er dog forskelle mellem dem. For at gøre det kort, kan det siges, at i praksis foretrækkes interfaces ofte frem for abstrakte klasser. Lad os forstå hvorfor dette er tilfældet.

Hvad er forskellen?

Først og fremmest skal vi forstå forskellene mellem en abstrakt klasse og et interface. Lad os gennemgå listen:

  • Syntaks: abstract class ved deklaration af en abstrakt klasse og interface ved deklaration af et interface;

  • Arve-nøgleord: extends for at arve fra en abstrakt klasse, og implements for at arve fra et interface;

  • Navne for underklasser: En underklasse af en abstract class kaldes en subklasse eller arvende klasse, mens en underklasse af et interface kaldes en klasse - implementation;

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

  • En abstract class kan have både implementerede og abstrakte metoder. Fra og med Java 8 kan interfaces også have default-metoder, hvilket vi vil diskutere senere i dette afsnit;

  • Metoder i en abstrakt klasse kan have enhver adgangsmodifikator, mens der i interfaces kun er tilladt public adgangsmodifikator.

Note

Vi kan også samtidig arve fra en abstrakt klasse og implementere et interface. Først bruger vi nøgleordet extends, og derefter bruger vi implements. Syntaksen ser sådan ud: class ClassName extends AbstractClass implements Interface {}

Kort sagt kan man betragte en abstrakt klasse som en klasse, der leverer en vis funktionalitet og håndhæver visse regler, men lader nogle dele være op til dens underklasser at fuldføre. Et interface derimod er som en tjekliste, som en klasse skal opfylde, og specificerer hvilke metoder den skal have, uden at levere nogen egentlig kode.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Java OOP

Java OOP

1. Hvordan Man Arbejder Med IDE?
2. OOP
3. Interface

book
Abstrakt Klasse vs Interface

Hvilken skal man vælge?

Fra de foregående kapitler har du måske bemærket, at abstract classes og interfaces er meget ens. Der er dog forskelle mellem dem. For at gøre det kort, kan det siges, at i praksis foretrækkes interfaces ofte frem for abstrakte klasser. Lad os forstå hvorfor dette er tilfældet.

Hvad er forskellen?

Først og fremmest skal vi forstå forskellene mellem en abstrakt klasse og et interface. Lad os gennemgå listen:

  • Syntaks: abstract class ved deklaration af en abstrakt klasse og interface ved deklaration af et interface;

  • Arve-nøgleord: extends for at arve fra en abstrakt klasse, og implements for at arve fra et interface;

  • Navne for underklasser: En underklasse af en abstract class kaldes en subklasse eller arvende klasse, mens en underklasse af et interface kaldes en klasse - implementation;

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

  • En abstract class kan have både implementerede og abstrakte metoder. Fra og med Java 8 kan interfaces også have default-metoder, hvilket vi vil diskutere senere i dette afsnit;

  • Metoder i en abstrakt klasse kan have enhver adgangsmodifikator, mens der i interfaces kun er tilladt public adgangsmodifikator.

Note

Vi kan også samtidig arve fra en abstrakt klasse og implementere et interface. Først bruger vi nøgleordet extends, og derefter bruger vi implements. Syntaksen ser sådan ud: class ClassName extends AbstractClass implements Interface {}

Kort sagt kan man betragte en abstrakt klasse som en klasse, der leverer en vis funktionalitet og håndhæver visse regler, men lader nogle dele være op til dens underklasser at fuldføre. Et interface derimod er som en tjekliste, som en klasse skal opfylde, og specificerer hvilke metoder den skal have, uden at levere nogen egentlig kode.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt