Sobes.tech
Junior

Je možné prepísať konštruktory v Jave?

sobes.tech AI

Odpoveď od AI

Nie, v Jave sa konštruktory nepíšu (overriding). Přepisovanie sa týka metód triedy, ktoré majú rovnakú signatúru (názov, typ návratovej hodnoty a zoznam parametrov) ako metóda v rodičovskej triede.

Namiesto prepisovania sa v Jave používajú preťaženia (overloading) konštruktorov. To znamená, že v jednej triede môže byť viacero konštruktorov s rovnakým názvom, ale s rôznymi zoznamami parametrov (počet, typy alebo poradie).

Podtrieda môže volať konštruktory rodičovskej triedy pomocou kľúčového slova super(...).

Príklad preťaženia konštruktorov:

class MyClass {
    int value;
    String name;

    // Predvolený konštruktor
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Volanie iného konštruktora pomocou this()
        this(0, "default"); 
    }

    // Preťažený konštruktor s jedným parametrom
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Preťažený konštruktor s dvomi parametrami
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}