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 | Section
Java Objektorienterede Programmeringsgrundlag

bookAbstrakt Klasse vs Interface

Stryg for at vise menuen

Hvilken skal vælges

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 interfaces ofte foretrækkes frem for abstrakte klasser i praksis. Men lad os forstå hvorfor.

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 en abstrakt klasse, og implements for at arve 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.

Bemærk

Det er også muligt at arve fra en abstrakt klasse og implementere et interface samtidigt. Først bruges nøgleordet extends, og derefter bruges implements. Syntaksen ser således ud: class ClassName extends AbstractClass implements Interface {}

Kort sagt kan en abstrakt klasse betragtes som en klasse, der leverer en vis funktionalitet og håndhæver visse regler, men efterlader nogle dele til sine underklasser. Et interface derimod fungerer som en tjekliste, som en klasse skal opfylde, og angiver hvilke metoder den skal have, uden at levere egentlig kode.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 22

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

Sektion 1. Kapitel 22
some-alt