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

Kursinnehåll

Java OOP

Java OOP

1. Hur Man Arbetar Med IDE?
2. Oop
3. Interface

book
Abstrakt Klass vs Interface

Vilken ska man välja?

Från de tidigare kapitlen har du kanske märkt att abstract classes och interfaces är ganska lika. Det finns dock skillnader mellan dem. För att gå rakt på sak kan man säga att i praktiken föredras interface ofta framför abstrakta klasser. Men låt oss förstå varför det är så.

Vad är skillnaden?

För att börja behöver vi förstå skillnaderna mellan en abstrakt klass och ett interface. Låt oss gå igenom listan:

  • Syntax: abstract class vid deklaration av en abstrakt klass och interface vid deklaration av ett interface;

  • Arv-nyckelord: extends för att ärva en abstrakt klass, och implements för att ärva ett interface;

  • Namn för subklasser: En subklass till en abstract class kallas en subklass eller ärvande klass, medan en subklass till ett interface kallas en klass - implementation;

  • Antal arv: Du kan ärva från endast en abstrakt klass, medan du kan ärva från flera interface;

  • En abstract class kan ha både implementerade och abstrakta metoder. Från och med Java 8 kan interface också ha default-metoder, vilket vi kommer att diskutera senare i detta avsnitt;

  • Metoder i en abstrakt klass kan ha valfri åtkomstmodifierare, medan i interface är endast åtkomstmodifieraren public tillåten.

Note

Vi kan också samtidigt ärva från en abstrakt klass och implementera ett interface. Först använder vi nyckelordet extends, och sedan använder vi implements. Syntaxen ser ut så här: class ClassName extends AbstractClass implements Interface {}

Enkelt uttryckt kan man se en abstrakt klass som en klass som tillhandahåller viss funktionalitet och upprätthåller vissa regler men lämnar vissa delar till sina subklasser att slutföra. Ett interface, å andra sidan, är som en checklista som en klass måste uppfylla, och specificerar vilka metoder den måste ha, utan att tillhandahålla någon faktisk kod.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Java OOP

Java OOP

1. Hur Man Arbetar Med IDE?
2. Oop
3. Interface

book
Abstrakt Klass vs Interface

Vilken ska man välja?

Från de tidigare kapitlen har du kanske märkt att abstract classes och interfaces är ganska lika. Det finns dock skillnader mellan dem. För att gå rakt på sak kan man säga att i praktiken föredras interface ofta framför abstrakta klasser. Men låt oss förstå varför det är så.

Vad är skillnaden?

För att börja behöver vi förstå skillnaderna mellan en abstrakt klass och ett interface. Låt oss gå igenom listan:

  • Syntax: abstract class vid deklaration av en abstrakt klass och interface vid deklaration av ett interface;

  • Arv-nyckelord: extends för att ärva en abstrakt klass, och implements för att ärva ett interface;

  • Namn för subklasser: En subklass till en abstract class kallas en subklass eller ärvande klass, medan en subklass till ett interface kallas en klass - implementation;

  • Antal arv: Du kan ärva från endast en abstrakt klass, medan du kan ärva från flera interface;

  • En abstract class kan ha både implementerade och abstrakta metoder. Från och med Java 8 kan interface också ha default-metoder, vilket vi kommer att diskutera senare i detta avsnitt;

  • Metoder i en abstrakt klass kan ha valfri åtkomstmodifierare, medan i interface är endast åtkomstmodifieraren public tillåten.

Note

Vi kan också samtidigt ärva från en abstrakt klass och implementera ett interface. Först använder vi nyckelordet extends, och sedan använder vi implements. Syntaxen ser ut så här: class ClassName extends AbstractClass implements Interface {}

Enkelt uttryckt kan man se en abstrakt klass som en klass som tillhandahåller viss funktionalitet och upprätthåller vissa regler men lämnar vissa delar till sina subklasser att slutföra. Ett interface, å andra sidan, är som en checklista som en klass måste uppfylla, och specificerar vilka metoder den måste ha, utan att tillhandahålla någon faktisk kod.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt