Наследование
Часть раздела Объектно-ориентированное программирование путешествия по 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Задание
Вам предоставлен класс 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В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
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Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление