Junior — Middle
Wat is het belangrijkste verschil tussen een abstracte klasse en een interface in objectgeoriënteerd programmeren?
sobes.tech AI
Antwoord van AI
Het belangrijkste verschil tussen een abstracte klasse en een interface is dat een abstracte klasse methoden en toestand (velden) kan bevatten, terwijl een interface alleen de handtekeningen van methoden definieert zonder implementatie (tot C# 8.0). Een abstracte klasse wordt gebruikt wanneer je een basisimplementatie en gemeenschappelijke functionaliteit voor afstammelingen wilt vastleggen, terwijl een interface wordt gebruikt om een contract te definiëren dat klassen moeten implementeren, ongeacht hun hiërarchie.
Voorbeeld:
// Abstracte klasse
public abstract class Animal {
public void Eat() {
Console.WriteLine("Eten");
}
public abstract void MakeSound();
}
// Interface
public interface IMovable {
void Move();
}
// Klasse die een abstracte klasse erft en een interface implementeert
public class Dog : Animal, IMovable {
public override void MakeSound() {
Console.WriteLine("Bark");
}
public void Move() {
Console.WriteLine("Rennen");
}
}