Java Academy · Les

Abstracte klassen

Declareer abstracte klassen en methoden, leer waarom u deze niet kunt instantiëren en zie hoe subklassen het ontwerp voltooien.

Les 1 van 38 stappen

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.

Gratis beginnen

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.

Alle lessen in deze cursus

  1. Abstracte klassen
  2. Interfaces (introductie en verschillen)
  3. Upcasten/downcasten en instanceof
← Terug naar Java Academy