Menu
Coddy logo textTech

Наследование

Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 24 из 56.

Наследование в ООП JavaScript — это способ, с помощью которого один класс получает доступ ко всем свойствам и методам другого класса.

Давайте рассмотрим пример. Создайте родительский класс:

class Vehicle {
 constructor(brand, model) {
   this.brand = brand;
   this.model = model;
 }
 drive() {
   console.log("Driving!");
 }
}

Теперь создайте дочерний класс, который наследуется от Vehicle:

// Car наследуется от Vehicle
class Car extends Vehicle {
 honk() {
   console.log("Beep beep!");
 }
}

Создайте экземпляр дочернего класса:

const myCar = new Car("Toyota", "Camry");

Доступ к свойствам и методам:

console.log(myCar.brand);  // "Toyota" — унаследовано от Vehicle
console.log(myCar.model);  // "Camry" — унаследовано от Vehicle
// Car может обращаться к методам Vehicle
myCar.drive();  // "Driving!" — унаследовано от Vehicle
// Car также имеет свои собственные методы
myCar.honk();   // "Beep beep!" — специфично для Car
challenge icon

Задание

Вам предоставлен класс Animal и класс Dog, который наследуется от него. Ваша задача — создать объект myDog с именем "Buddy" и возрастом 3.

Шпаргалка

Наследование позволяет одному классу получить доступ к свойствам и методам другого класса, используя ключевое слово extends.

Родительский класс:

class Vehicle {
 constructor(brand, model) {
   this.brand = brand;
   this.model = model;
 }
 drive() {
   console.log("Driving!");
 }
}

Дочерний класс, наследующий от родительского:

class Car extends Vehicle {
 honk() {
   console.log("Beep beep!");
 }
}

Дочерний класс наследует все свойства и методы родительского класса, а также может иметь свои собственные:

const myCar = new Car("Toyota", "Camry");
console.log(myCar.brand);  // "Toyota" - унаследовано
myCar.drive();  // "Driving!" - унаследовано
myCar.honk();   // "Beep beep!" - собственный метод

Попробуйте сами

import { Dog } from './animal.js';

// TODO: Создайте объект myDog с именем "Buddy" и возрастом 3.


// Тестовый код — не изменять
console.log(myDog.name);  // Должно вывести "Buddy"
console.log(myDog.age);  // Должно вывести 3
quiz iconПроверьте себя

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

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