Ключевое слово extends
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 26 из 56.
Ключевое слово extends в JavaScript используется для создания дочернего класса, который наследует свойства и методы от родительского класса.
Давайте сначала создадим родительский класс:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a noise.`;
}
}Теперь давайте создадим дочерний класс, который расширяет родительский класс:
class Dog extends Animal {
// Класс Dog наследуется от Animal
}Этот простой код означает, что класс Dog теперь наследует все свойства и методы от класса Animal.
Создайте экземпляр собаки:
const dog = new Dog('Rex');Вызовите метод, унаследованный от родителя:
console.log(dog.speak()); // Выводит: "Rex makes a noise."Ключевое слово extends создает отношение наследования, в котором дочерний класс (Dog) может получать доступ и использовать всю функциональность, определенную в родительском классе (Animal).
Задание
Создайте класс Student, который расширяет класс Person, используя ключевое слово extends, и экспортируйте его.
Шпаргалка
Ключевое слово extends создает дочерний класс, который наследует свойства и методы родительского класса:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a noise.`;
}
}
class Dog extends Animal {
// Dog наследует от Animal
}
const dog = new Dog('Rex');
console.log(dog.speak()); // Выводит: "Rex makes a noise."Дочерний класс может обращаться ко всем свойствам и методам родительского класса.
Попробуйте сами
import { Student } from './classes.js';
// Тестовый код — не изменять
const student = new Student("Emma");
console.log(student.greet()); // Должно вывести "Hello, I'm Emma"В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление