Abstracte klassen en abstracte methoden
Definiëren wat subklassen moeten implementeren
Abstracte klassen en abstracte methoden is een gratis Dart Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Dart Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Dart Academy bevat in totaal 4 lessen.
Wat abstract betekent
Een abstracte klasse is een blauwdruk die je kunt beschrijven, maar nooit rechtstreeks kunt maken. Ze bestaat om te worden uitgebreid en niet om zelfstandig te worden geïnstantieerd.
Een klasse abstract maken
Je voegt het sleutelwoord abstract toe vóór class. Daarmee vertel je Dart dat de klasse onvolledig is en bedoeld is als gedeelde basis.
abstract class Shape {
double area();
}Abstracte methoden hebben geen body
Een abstracte methode declareert een naam en signatuur, maar eindigt met een puntkomma. Elke subklasse moet het eigenlijke werk leveren.
abstract class Shape {
double area(); // no body
}Je kunt haar niet instantiëren
Als je Shape() probeert te schrijven, krijg je een compileerfout. Dart weigert dit omdat een abstracte klasse onvoltooid is en geen echte implementatie heeft.
var s = Shape(); // error: abstractSubklassen vullen de ontbrekende delen in
Een subklasse gebruikt extends en moet een body leveren voor elke abstracte methode, zodat de blauwdruk bruikbaar wordt.
class Circle extends Shape {
final double r;
Circle(this.r);
double area() => 3.14 * r * r;
}Concrete methoden zijn ook toegestaan
Een abstracte klasse kan ook volledig uitgewerkte concrete methoden bevatten. Subklassen erven die rechtstreeks en vullen alleen de abstracte methoden in.
abstract class Shape {
double area();
void describe() => print('Area is ' + area().toString());
}Velden in abstracte klassen
Abstracte klassen kunnen ook velden en constructors bevatten. Die worden uitgevoerd wanneer een subklasse wordt gemaakt, zodat gedeelde toestand in de basis blijft.
abstract class Shape {
final String name;
Shape(this.name);
}De compiler dwingt het contract af
Als een subklasse een abstracte methode vergeet, meldt Dart een fout voordat je de code uitvoert. Het contract wordt voor je gecontroleerd.
class Square extends Shape {} // error: area() missingWaarom abstracte klassen gebruiken
Ze laten meerdere typen dezelfde vorm delen en garanderen tegelijk dat elk type zijn eigen gedrag levert. Je ontwerpt één duidelijk contract en hergebruikt dat overal.
Abstracte getters
Methoden zijn niet het enige dat je abstract kunt laten. Een getter zonder body werkt op dezelfde manier en moet door subklassen worden gedefinieerd.
abstract class Shape {
String get label;
}Abstracte verwijzingen opslaan
Je kunt elke subklasse opslaan in een variabele met het type van de abstracte klasse. Het type belooft bepaald gedrag zonder een concrete klasse te noemen.
Shape s = Circle(2);
print(s.area());Snelle controle
Een korte vraag over abstracte klassen.
Samenvatting
Abstracte klassen zijn blauwdrukken die je uitbreidt en niet instantieert. Abstracte methoden hebben geen body en concrete subklassen moeten ze implementeren. Goed gedaan! 🎯
Leer Dart met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Abstracte klassen en abstracte methoden” gratis?
Ja — de volledige tekst van “Abstracte klassen en abstracte methoden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Dart Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Dart Academy bevat in totaal 4 lessen.
Wat leer ik in “Abstracte klassen en abstracte methoden”?
Definiëren wat subklassen moeten implementeren Je oefent met Dart Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Dart Academy te beginnen?
Ervaring vooraf is niet nodig. Dart Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Abstracte klassen en abstracte methoden”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Dart Academy?
Ja. Elke les over Dart Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Abstracte klassen en abstracte methoden
- Impliciete interfaces en implements
- Polymorfisme via gedeelde typen
- Compositie boven overerving