Junior
Могу ли се конструктори у Јави преоптеретити?
sobes.tech АИ
Одговор од АИ
Не, у Јави конструктори се не преписују (overriding). Преписивање се односи на методе класе која наследи, које имају исту сигнатуру (име, тип повратне вредности и листу параметара) као и метода у родитељској класи.
Уместо преписивања, у Јави се користи преоптерећење (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;
}
}