Sobes.tech
Назад к вопросам
Junior — Middle
94

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

Ответ от нейросети

sobes.tech AI

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

Например, у вас есть базовый класс Животное с методом издатьЗвук(). Классы-наследники Собака и Кошка переопределяют этот метод, чтобы издавать разные звуки:

class Animal {
  makeSound() {
    console.log('Некоторый звук');
  }
}

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

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

const animals = [new Dog(), new Cat()];
animals.forEach(animal => animal.makeSound());
// Выведет:
// Гав
// Мяу

Таким образом, полиморфизм позволяет писать более гибкий и расширяемый код, где можно работать с объектами через общий интерфейс, не заботясь о конкретных реализациях.