Sobes.tech
Junior

Ar galima perrašyti konstruktorius Java?

sobes.tech AI

Atsakymas iš AI

Ne, Java kalbos konstruktoriai (build) nėra perrašomi (overriding). Perrašymas taikomas vaikų klasės metodams, kurie turi tą pačią parašą (pavadinimą, grąžinimo tipą ir parametrų sąrašą) kaip ir tėvų klasės metodas.

Vietoj perrašymo Java naudoja perkrautimą (overloading) konstruktoriams. Tai reiškia, kad vienoje klasėje gali būti keli konstruktoriai su tuo pačiu pavadinimu, bet skirtingais parametrais (kiekis, tipai ar tvarka).

Vaikų klasė gali iškviesti tėvų klasės konstruktorius naudodama raktinį žodį super(...).

Konstruktorių perkrovimo pavyzdys:

class MyClass {
    int value;
    String name;

    // Numatytoji konstrukcija
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Kito konstruktoriaus iškvietimas su this()
        this(0, "default"); 
    }

    // Vieno parametro perkrautas konstruktorius
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Dviejų parametrų perkrautas konstruktorius
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}