Sobes.tech
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;
    }
}