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;
}
}