Sobes.tech
Junior

Lze přetížit konstruktory v Javě?

sobes.tech AI

Odpověď od AI

Ne, v Javě se konstruktorů nepřepisuje (overriding). Přepisování se týká metod třídy potomka, které mají stejnou signaturu (název, typ návratové hodnoty a seznam parametrů) jako metoda v rodičovské třídě.

Místo přepisování se v Javě používá přetížení (overloading) konstruktorů. To znamená, že ve stejné třídě může být několik konstruktorů se stejným názvem, ale s různými seznamy parametrů (počet, typy nebo pořadí).

Potomková třída může volat konstruktory rodičovské třídy pomocí klíčového slova super(...).

Příklad přetížení konstruktorů:

class MyClass {
    int value;
    String name;

    // Výchozí konstruktor
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Volání jiného konstruktoru pomocí this()
        this(0, "default"); 
    }

    // Přetížený konstruktor s jedním parametrem
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Přetížený konstruktor se dvěma parametry
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}