JavaScript: Наследование классов
Введение в наследование классов в JavaScript
Наследование классов — это фундаментальная концепция объектно-ориентированного программирования, которая позволяет одному классу наследовать свойства и методы от другого класса. В JavaScript наследование классов реализуется с помощью ключевого слова extends, что предоставляет способ создания производного класса, наследующего свойства и методы базового класса.
Более подробную информацию о базовом синтаксисе см. в статье JavaScript: Классы и базовый синтаксис.
Создание производного класса
Чтобы создать класс, наследующий другой класс, используется ключевое слово extends:
В этом примере Circle расширяет Shape, то есть наследует свойства и методы Shape, одновременно предоставляя собственные методы. Обратите внимание, что Circle не определяет собственный конструктор. В JavaScript производные классы без явного конструктора автоматически вызывают super() с теми же аргументами, которые переданы в конструктор производного класса.
Переопределение методов
Производные классы могут переопределять методы своих базовых классов, чтобы обеспечить поведение, специфичное для подкласса.
Здесь Circle переопределяет метод print, чтобы отразить его конкретный тип.
Вызов методов родительского класса с помощью super
Вы также можете вызвать метод родительского класса из производного класса, используя super.methodName(). Это полезно, когда вы хотите расширить поведение родителя, а не полностью заменить его.
Здесь super.print() выполняет логику родителя перед добавлением вывода, специфичного для подкласса.
Доступ к конструктору родительского класса: ключевое слово super
Когда класс расширяет другой класс, функция-конструктор производного класса должна вызвать конструктор родителя с помощью super() перед тем, как сможет использовать this. Вот как super используется в конструкторах для обеспечения инициализации родительского класса:
Заключение
Наследование классов в JavaScript — это мощная функция, которая позволяет создавать более управляемую и иерархическую модель объектов. Понимая и эффективно используя наследование, вы можете писать более структурированный и модульный код на JavaScript. Наследование не только способствует повторному использованию кода, но и помогает создавать интуитивно понятные связи между компонентами вашего приложения.
Практика
In JavaScript class inheritance, which statements are true?