Как сдеелать переопределение методов класса js?

Аватар пользователя Кирилл Маркеев
Кирилл Маркеев
14 января 2023

Для переопределения метода класса нужно в дочернем (наследуемом) классе объявить метод с тем же именем, что и у метода родительского класса.

Создадим родительский класс, в котором объявим метод sayGreeting():

class User {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayGreeting() {
    return `Hello! My name is ${this.name}!`;
  }
}

Создадим экземпляр класса User и проверим, что всё работает:

const user = new User('John', 30);
console.log(user.sayGreeting()); // => Hello! My name is John!

Предположим, что мы хотим переопределить метод sayGreeting(). Для этого создадим другой класс, который будет наследоваться от класса User, и объявим в дочернем классе свой метод sayGreeting():

class Student extends User {
  sayGreeting() {
    return `Hi! My name is ${this.name}, glad to meet you!`;
  }
}

Убедимся, что переопределение работает:

const student = new Student('Mike', 20);
console.log(student.sayGreeting()); // => Hi! My name is Mike, glad to meet you!
0 0
Познакомьтесь с основами JavaScript бесплатно