Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: polymorphism, OOP, method overriding, duck typing

Что такое полиморфизм? Приведите пример в JavaScript.

Вопрос проверяет понимание принципа полиморфизма в объектно-ориентированном программировании и умение применять его в JavaScript.

Короткий ответ

Полиморфизм — это способность объектов с одинаковым интерфейсом вести себя по-разному в зависимости от их типа. В JavaScript он реализуется через переопределение методов в классах-наследниках или через утиную типизацию. Например, разные классы могут иметь метод speak(), но каждый выводит свой звук.

Длинный ответ

Что такое полиморфизм?

Полиморфизм — один из ключевых принципов ООП, который позволяет объектам разных классов обрабатывать данные через единый интерфейс. Это значит, что один и тот же метод может работать по-разному в зависимости от объекта, который его вызывает. В JavaScript полиморфизм часто достигается через наследование и переопределение методов.

Пример в JavaScript

Рассмотрим базовый класс Animal с методом speak(). Классы Dog и Cat наследуют его и переопределяют метод:

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

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

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

const animals = [new Dog(), new Cat()];
animals.forEach(animal => animal.speak());
// Woof!
// Meow!

Здесь метод speak() вызывается для каждого объекта, но результат разный — это и есть полиморфизм.

Утиная типизация

В JavaScript также используется утиная типизация: если объект имеет метод с нужным именем, он может быть использован, даже если не наследует общий класс. Например:

function makeSound(animal) {
  animal.speak();
}

const duck = { speak: () => console.log('Quack!') };
makeSound(duck); // Quack!

Это упрощает код и делает его более гибким.

Вывод

Полиморфизм полезен для создания расширяемых и поддерживаемых систем, где можно добавлять новые типы объектов без изменения существующего кода. В JavaScript он реализуется через наследование или утиную типизацию, что делает язык очень гибким для ООП.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#polymorphism

#OOP

#method overriding

#duck typing

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию