Junior
Може ли да се презапишат конструкторите в Java?
sobes.tech AI
Отговор от AI
Не, в Java конструкторите не се презаписват (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;
}
}