Sobes.tech
Back to questions
Junior — Middle
123

Можете объяснить концепцию полиморфизма и его роль в объектно-ориентированном программировании?

Companies where asked
РосатомРосатом

Answer from AI

sobes.tech AI

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

Роль полиморфизма в ООП:

  • Позволяет писать более гибкий и расширяемый код.
  • Упрощает поддержку и добавление новых классов без изменения существующего кода.
  • Способствует использованию наследования и интерфейсов.

Пример на JavaScript (Node.js):

class Animal {
  speak() {
    console.log('Животное издает звук');
  }
}

class Dog extends Animal {
  speak() {
    console.log('Гав');
  }
}

class Cat extends Animal {
  speak() {
    console.log('Мяу');
  }
}

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

const dog = new Dog();
const cat = new Cat();

makeAnimalSpeak(dog); // Гав
makeAnimalSpeak(cat); // Мяу

Здесь функция makeAnimalSpeak принимает объект типа Animal, но в зависимости от конкретного подкласса вызывается соответствующая реализация метода speak.