Sobes.tech
Junior — Middle

Каква е функцията на оператора super в контекста на наследяването и извикването на методи или конструктори на базовия клас?

sobes.tech AI

Отговор от AI

Операторът super в Java се използва за достъп до методи или конструктори на базов (родителски) клас от подклас.

Основните назначения на super:

  • Вика на конструктора на базовия клас от конструктора на подклас, за да инициализира частта от обекта, определена в родителя.
  • Вика на презаписан метод на базовия клас, ако в подклас трябва да допълни или промени поведението, като същевременно запази част от логиката на родителя.

Пример за използване на конструктора:

class Animal {
    String name;
    Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    Dog(String name) {
        super(name); // извикване на конструктора на Animal
    }
}

Пример за извикване на метод на базовия клас:

class Animal {
    void sound() {
        System.out.println("Някакъв звук");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // извикване на метода на базовия клас
        System.out.println("Лаене");
    }
}

По този начин super помага за управлението на наследяването и повторното използване на кода на базовия клас.