РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
108 of 723 menu

Ключевое слово super

Ключевое слово super используется внутри класса для обращения к его родительскому классу. С его помощью можно вызывать конструктор родителя, обращаться к его методам и свойствам. Это особенно важно, когда дочерний класс переопределяет поведение родителя, но при этом хочет использовать его реализацию. В первом случае super применяется с круглыми скобками для вызова конструктора, во втором - через точку для доступа к методу или свойству.

Синтаксис

super(args); // вызов конструктора родителя super.method(); // вызов метода родителя super.property; // доступ к свойству родителя

Пример

Давайте создадим родительский класс Animal и дочерний класс Dog, который через super вызывает конструктор родителя:

class Animal { String name; Animal(this.name); } class Dog extends Animal { Dog(String name) : super(name); } void main() { Dog dog = Dog('abcde'); print(dog.name); }

Результат выполнения кода:

"abcde"

Пример

Давайте переопределим метод в дочернем классе и через super вызовем реализацию родителя:

class Animal { String speak() { return '...'; } } class Dog extends Animal { @override String speak() { return super.speak() + ' woof'; } } void main() { Dog dog = Dog(); print(dog.speak()); }

Результат выполнения кода:

"... woof"

Пример

Давайте получим доступ к свойству родительского класса через super внутри переопределённого геттера:

class Animal { String type = 'abcde'; } class Dog extends Animal { String get parentType { return super.type; } } void main() { Dog dog = Dog(); print(dog.parentType); }

Результат выполнения кода:

"abcde"

Смотрите также

  • ключевое слово this,
    которое ссылается на текущий объект
  • ключевое слово extends,
    которое наследует класс от родителя
  • ключевое слово implements,
    которое реализует интерфейс класса
  • ключевое слово with,
    которое подключает миксины к классу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить