Abstrakt Klasse vs Interface
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 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 classved deklaration af en abstrakt klasse oginterfaceved deklaration af et interface; - Arve-nøgleord:
extendsfor at arve fra en abstrakt klasse ogimplementsfor at arve fra et interface; - Navne for underklasser: En underklasse af en
abstract classkaldes en subklasse eller arvende klasse, mens en underklasse af etinterfacekaldes en klasse - implementation; - Antal arv: Du kan kun arve fra én abstrakt klasse, mens du kan arve fra flere interfaces;
- En
abstract classkan have både implementerede og abstrakte metoder. Fra og med Java 8 kan interfaces også havedefault-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
publicadgangsmodifikator.
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 brugesimplements. 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 at fuldføre. Et interface kan derimod sammenlignes med en tjekliste, som en klasse skal opfylde, og specificerer hvilke metoder den skal have, uden at levere nogen egentlig kode.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4.76
Abstrakt 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 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 classved deklaration af en abstrakt klasse oginterfaceved deklaration af et interface; - Arve-nøgleord:
extendsfor at arve fra en abstrakt klasse ogimplementsfor at arve fra et interface; - Navne for underklasser: En underklasse af en
abstract classkaldes en subklasse eller arvende klasse, mens en underklasse af etinterfacekaldes en klasse - implementation; - Antal arv: Du kan kun arve fra én abstrakt klasse, mens du kan arve fra flere interfaces;
- En
abstract classkan have både implementerede og abstrakte metoder. Fra og med Java 8 kan interfaces også havedefault-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
publicadgangsmodifikator.
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 brugesimplements. 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 at fuldføre. Et interface kan derimod sammenlignes med en tjekliste, som en klasse skal opfylde, og specificerer hvilke metoder den skal have, uden at levere nogen egentlig kode.
Tak for dine kommentarer!