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

Ключевое слово extends позволяет создать цепочку наследования. Наследование — это возможность создания производных классов на основе базового класса. При этом производный класс автоматически получает возможности базового класса и может добавить новую функциональность или переопределить некоторые методы. Пример создания иерархии классов приведен в листинге 11.7.

Листинг 11.7. Наследование

class A {                 // Базовый класс
   constructor(_a) {      // Конструктор
      this.a = _a;
      console.log('Конструктор класса A');
   }
}
class B extends A {       // Производный класс
   constructor(_a, _b) {  // Конструктор
      super(_a);          // Вызов конструктора базового класса
      this.b = _b;
      console.log('Конструктор класса B');
   }
}
let objB = new B(10, 55);
// Конструктор класса A
// Конструктор класса B
console.log( objB.a ); // 10
console.log( objB.b ); // 55
console.log( objB );   // B { a: 10, b: 55 }

В этом примере класс B наследует все члены класса A. Класс A называется базовым классом или суперклассом, а класс B — производным классом или подклассом.

Обратите внимание: внутри конструктора производного класса необходимо вызвать конструктор базового класса до первого обращения к указателю this. Конструктор в базовом классе автоматически не вызывается, если он был переопределен в производном классе. Для передачи значений конструктору базового класса используется следующий синтаксис:

super([<Значения>]);

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов