Что такое полиморфизм в ООП

«Что такое полиморфизм в ООП» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Полиморфизм — это возможность объектов с разной реализацией реагировать на один и тот же интерфейс. В JS это достигается через переопределение методов или использование интерфейсов (в TypeScript).

Пример с переопределением метода:

class Animal {
  makeSound() {
    console.log('Some sound');
  }
}

class Dog extends Animal {
  makeSound() {
    console.log('Woof!');
  }
}

class Cat extends Animal {
  makeSound() {
    console.log('Meow!');
  }
}

const animals = [new Animal(), new Dog(), new Cat()];
animals.forEach(animal => animal.makeSound());
// Выведет: Some sound, Woof!, Meow!