Sobes.tech
Junior

Átírhatók-e a konstruktorok Java-ban?

sobes.tech MI

Válasz az MI-től

Nem, Java-ban a konstruktorokat nem lehet felülírni (overriding). A felülírás a leszármazott osztály metódusaira vonatkozik, amelyek ugyanazzal a szignóval (név, visszatérési típus és paraméterlista) rendelkeznek, mint a szülő osztályban lévő metódus.

Helyette Java-ban a túlterhelést (overloading) használják a konstruktoroknál. Ez azt jelenti, hogy egy osztályban több konstruktor is lehet ugyanazzal a névvel, de különböző paraméterlistákkal (szám, típus vagy sorrend).

Az alosztály hívhatja a szülő osztály konstruktorait a super(...) kulcsszóval.

Példa a konstruktorok túlterhelésére:

class MyClass {
    int value;
    String name;

    // Alapértelmezett konstruktor
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Egy másik konstruktor hívása this() segítségével
        this(0, "default"); 
    }

    // Egy paraméteres túlterhelt konstruktor
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Két paraméteres túlterhelt konstruktor
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}