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"); }
}