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

Если вы новичок в программировании и чтении кода, вы, вероятно, видели примеры классов. Классы являются важной концепцией в объектно-ориентированных языках программирования. Некоторым людям они нравятся, другим нет, несмотря на это, это важная концепция для понимания.

Когда я начинал как разработчик, я читал JavaScript и React. В то время в React преобладали классовые компоненты. Примеры выглядели так:

Все имело смысл, кроме вызова суперфункции в конструкторе. Я понятия не имел, что он делает, и большинство статей для начинающих, которые я читал, никогда не касались этого.

Я пишу эту статью, чтобы объяснить, что такое суперметод и что он делает. Мой пример кода для этого поста будет использовать React, но суперметод появляется и на других языках ООП.

Питон:

Джава:

Рубин:

Вернуться к примеру

Когда класс вызывает суперметод, это означает, что он является подклассом суперкласса.

Это также можно увидеть по ключевому слову extends после Car. Языки различаются по способу обработки наследования, поэтому я не буду вдаваться в подробности.

В приведенном выше примере класс Car является подклассом суперкласса React.Component. Когда подкласс расширяет суперкласс, он наследует методы и значения, содержащиеся в суперклассе. Он также наследует все требования для создания экземпляров.

Взгляните на класс React.Component, определенный React.

Посмотрите на конструктор в строке 6. Для классов метод конструктора — это специальный метод класса для создания и инициализации экземпляра объекта этого класса.

Когда подклассы вызывают функцию super(), они запускают метод конструктора в своем суперклассе. Итак, в нашем первом примере мой super() в строке 3 вызывает конструктор в строке 6 родительского класса.

Если у вашего суперкласса нет конструктора, вам не нужно запускать метод super() в конструкторе вашего подкласса.

Вы также можете использовать метод super для доступа к другим методам или информации в суперклассе.

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

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