Menu
Coddy logo textTech

Ключевое слово 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).

challenge icon

Задание

Создайте класс 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"
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование