Sobes.tech
Junior — Middle

Lehetséges-e egy absztrakt osztályon belül konstruktort definiálni?

sobes.tech MI

Válasz az MI-től

Igen, Java-ban lehet konstruktorokat definiálni absztrakt osztályokon belül. Bár egy absztrakt osztályt nem lehet közvetlenül példányosítani, a konstruktorát akkor hívják meg, amikor leszármazott osztályok példányait hozzák létre.

Ez hasznos az általános mezők inicializálásához vagy általános logika végrehajtásához a leszármazott objektumok létrehozásakor.

Példa:

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 + " mondja: Vau!" );
    }
}

Itt az Animal absztrakt osztály konstruktorát a Dog leszármazott osztály konstruktorából hívják meg.