Abstracte klassen
Declareer abstracte klassen en methoden, leer waarom u deze niet kunt instantiëren en zie hoe subklassen het ontwerp voltooien.
Abstracte klassen is een gratis Java Academy-les op CoddyKit. Dit is les 1 van 3. 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 Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 3 lessen.
Wat is een abstracte klasse?
Abstracte klasse: beschrijft een gemeenschappelijk concept en kan sommige methoden zonder implementatie laten. Ze kan ook gewone methoden met code bevatten. Zie het als een sjabloon dat subklassen verplicht de open plekken in te vullen.
Code: kan niet worden geïnstantieerd
Abstracte klassen kun je niet rechtstreeks instantiëren. Ze kunnen nog steeds gewone methoden bevatten die alle subklassen overnemen.
public class Main {
// Abstract class with one abstract method and one concrete method
static abstract class Animal {
abstract void speak(); // must be implemented by subclasses
void info() { // concrete method allowed
System.out.println("I am an animal.");
}
}
public static void main(String[] args) {
// Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
System.out.println("You cannot create an Animal directly if it is abstract.");
}
}
Waarom abstracte klassen gebruiken?
Ze brengen gedeelde code op één plek samen en verplichten elke subklasse de belangrijke methoden aan te leveren. Gebruik ze wanneer bepaald gedrag gemeenschappelijk is, maar ander gedrag verschilt tussen concrete typen.
Code: abstracte methode implementeren
Subklassen moeten abstracte methoden implementeren. Concrete methoden uit de abstracte klasse worden overgenomen en kunnen opnieuw worden gebruikt.
public class Main {
static abstract class Animal {
abstract void speak();
void info() {
System.out.println("I am an animal.");
}
}
static class Dog extends Animal {
// Must implement speak()
void speak() {
System.out.println("Woof!");
}
}
public static void main(String[] args) {
Dog d = new Dog(); // allowed: Dog is concrete
d.info(); // inherited concrete method
d.speak(); // Dog's implementation
}
}
Regels en combinatie
Regels: een abstracte klasse kan velden, constructors en concrete methoden bevatten. Een subklasse wordt pas concreet nadat ze alle abstracte methoden heeft geïmplementeerd; anders is ze ook abstract.
Code: abstractie en polymorfisme
Abstracte klassen werken goed samen met polymorfisme. Code kan het abstracte type gebruiken, en elke subklasse levert het juiste gedrag.
public class Main {
static abstract class Animal {
abstract void speak();
}
static class Dog extends Animal {
void speak() { System.out.println("Woof!"); }
}
static class Cat extends Animal {
void speak() { System.out.println("Meow!"); }
}
public static void main(String[] args) {
// Polymorphism through abstract base type
Animal[] pets = { new Dog(), new Cat() };
for (int i = 0; i < pets.length; i = i + 1) {
pets[i].speak(); // each subclass provides its own behavior
}
}
}
Controle van abstracte klassen
Korte controle: welke uitspraak over abstracte klassen is juist?
Samenvatting
Samenvatting: Gebruik abstracte klassen om code te delen en belangrijke methoden verplicht te stellen. Je kunt ze niet rechtstreeks instantiëren, maar subklassen vullen het gedrag aan.
Leer Java 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
- 104
- Lessen
- 374
Veelgestelde vragen
Is de les “Abstracte klassen” gratis?
Ja — de volledige tekst van “Abstracte klassen” 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 Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 3 lessen.
Wat leer ik in “Abstracte klassen”?
Declareer abstracte klassen en methoden, leer waarom u deze niet kunt instantiëren en zie hoe subklassen het ontwerp voltooien. Je oefent met Java 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 Java Academy te beginnen?
Ervaring vooraf is niet nodig. Java 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 3.
Hoe lang duurt de les “Abstracte klassen”?
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 Java Academy?
Ja. Elke les over Java 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.