Использование примера React

Если вы новичок в программировании и чтении кода, вы, вероятно, видели примеры классов. Классы являются важной концепцией в объектно-ориентированных языках программирования. Некоторым людям они нравятся, другим нет, несмотря на это, это важная концепция для понимания.
Когда я начинал как разработчик, я читал JavaScript и React. В то время в React преобладали классовые компоненты. Примеры выглядели так:
Все имело смысл, кроме вызова суперфункции в конструкторе. Я понятия не имел, что он делает, и большинство статей для начинающих, которые я читал, никогда не касались этого.
Я пишу эту статью, чтобы объяснить, что такое суперметод и что он делает. Мой пример кода для этого поста будет использовать React, но суперметод появляется и на других языках ООП.
Питон:
Джава:
Рубин:
Вернуться к примеру
Когда класс вызывает суперметод, это означает, что он является подклассом суперкласса.
Это также можно увидеть по ключевому слову extends после Car. Языки различаются по способу обработки наследования, поэтому я не буду вдаваться в подробности.
В приведенном выше примере класс Car является подклассом суперкласса React.Component. Когда подкласс расширяет суперкласс, он наследует методы и значения, содержащиеся в суперклассе. Он также наследует все требования для создания экземпляров.
Взгляните на класс React.Component, определенный React.
Посмотрите на конструктор в строке 6. Для классов метод конструктора — это специальный метод класса для создания и инициализации экземпляра объекта этого класса.
Когда подклассы вызывают функцию super(), они запускают метод конструктора в своем суперклассе. Итак, в нашем первом примере мой super() в строке 3 вызывает конструктор в строке 6 родительского класса.
Если у вашего суперкласса нет конструктора, вам не нужно запускать метод super() в конструкторе вашего подкласса.
Вы также можете использовать метод super для доступа к другим методам или информации в суперклассе.

Используя мой первоначальный класс React Car, вы можете видеть из моей IDE, что у меня есть доступ ко всем методам и свойствам моего суперкласса Component.
Я надеюсь, что это дало некоторое представление о том, для чего используется суперметод. Даже если вы никогда не используете классы в своем собственном коде, полезно знать, как их читать.