Sobes.tech
Junior — Middle

Is het mogelijk om een constructor binnen een abstracte klasse te definiëren?

sobes.tech AI

Antwoord van AI

Ja, in Java is het mogelijk om een constructor binnen een abstracte klasse te definiëren. Hoewel een abstracte klasse niet direct kan worden geïnstalleerd, wordt haar constructor aangeroepen bij het maken van objecten van de subklassen.

Dit is handig voor het initialiseren van gemeenschappelijke velden of het uitvoeren van algemene logica bij het maken van afgeleide objecten.

Voorbeeld:

public abstract class Animal {
    protected String name;

    public Animal(String name) {
        this.name = name;
    }

    public abstract void makeSound();
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    @Override
    public void makeSound() {
        System.out.println(name + " zegt: Woef!");
    }
}

Hier wordt de constructor van de abstracte klasse Animal aangeroepen vanuit de constructor van de subklasse Dog.