Sobes.tech
Junior

Կարող եք արդյոք վերագրել կոնստրուկտորները Java-ում?

sobes.tech AI

Պատասխան AI-ից

Ոչ, Java- ում կոնստրուկտորները (build) չեն վերագրի (overriding): Վերագրումը վերաբերում է դասի մեթոդներին, որոնք ունեն նույն ստորագրությունը (անուն, վերադարձի տիպ և պարամետրերի ցանկ), ինչպես ծնողական դասի մեթոդը:

Դրա փոխարեն, Java- ում օգտագործվում է գերբեռնում (overloading) կոնստրուկտորների համար: Սա նշանակում է, որ նույն դասում կարող են լինել մի քանի կոնստրուկտորներ նույն անունով, բայց տարբեր պարամետրերի ցանկով (քանակ, տիպեր կամ կարգ):

Երեխա դասը կարող է կանչել ծնողական դասի կոնստրուկտորները super(...) բանալի բառը օգտագործելով:

Օրինակ կոնստրուկտորների գերբեռնման:

class MyClass {
    int value;
    String name;

    // Դեֆոլտ կոնստրուկտոր
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Այլ կոնստրուկտոր կանչել this()
        this(0, "default"); 
    }

    // Մի պարամետրով գերբեռնված կոնստրուկտոր
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Երկու պարամետրով գերբեռնված կոնստրուկտոր
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}