Переопределение методов

Если имя метода в производном классе совпадает с именем метода из базового класса, то будет использоваться метод из производного класса. Чтобы вызвать метод базового класса из метода производного класса, следует воспользоваться следующим синтаксисом:

super.<Имя метода>([<Значения>])

Рассмотрим переопределение методов на примере (листинг 11.8).

Листинг 11.8. Переопределение методов

class A {
   constructor(_a) {
      this.a = _a;
   }
   func1(x) {
      console.log(`Метод finc1() из класса A; x = ${x}`);
   }
   func2() {
      console.log('Метод finc2() из класса A');
   }
}
class B extends A {
   constructor(_a) {
      super(_a);      // Вызов конструктора базового класса
   }
   func1(x) {
      super.func1(x); // Вызов метода базового класса
      console.log('Метод finc1() из класса B');
   }
   func2() {
      console.log('Метод finc2() из класса B');
   }
}
let objB = new B(10);
objB.func1(31);
// Метод finc1() из класса A; x = 31
// Метод finc1() из класса B
objB.func2(); // Метод finc2() из класса B
let objA = new A(5);
objA.func2(); // Метод finc2() из класса A

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

Помощь сайту

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

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