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.