Sobes.tech
Middle

Wat is het verschil tussen een abstracte klasse en een interface?

sobes.tech AI

Antwoord van AI

Abstracte klasse — dit is een klasse die zowel geïmplementeerde methoden als abstracte (zonder implementatie) methoden kan bevatten. Het dient als basis voor overerving en kan toestand (velden) bevatten.

Interface — is een contract dat een set methoden zonder implementatie definieert (in de klassieke zin). De klasse die de interface implementeert, moet al zijn methoden implementeren.

Belangrijkste verschillen:

  • Een abstracte klasse kan implementatie en toestand bevatten, de interface alleen methodesignaturen (in sommige talen kunnen interfaces standaardmethoden bevatten).
  • Een klasse kan slechts van één abstracte klasse erven, maar meerdere interfaces implementeren.
  • Een abstracte klasse biedt een gedeeltelijke implementatie, de interface alleen het contract.

Voorbeeld in Java:

abstract class Animal {
    void eat() { System.out.println("Eten"); }
    abstract void sound();
}

interface Flyable {
    void fly();
}

class Bird extends Animal implements Flyable {
    void sound() { System.out.println("Zingen"); }
    public void fly() { System.out.println("Vliegen"); }
}