Назад к вопросам
Junior
73
questionbank
Что такое полиморфизм в программировании?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Полиморфизм (от греч. "много форм") — это способность различных объектов реагировать на одно и то же сообщение (вызов метода) по-разному, в зависимости от своего типа.
В объектно-ориентированном программировании полиморфизм позволяет:
- Работать с объектами разных классов через общий интерфейс или базовый класс.
- Создавать более гибкий и расширяемый код.
Основные виды полиморфизма:
- Compile-time (статический) полиморфизм: Реализуется через перегрузку методов (method overloading). Методы с одним и тем же именем, но разными сигнатурами (количество или типы параметров) определяются в одном классе.
- Run-time (динамический) полиморфизм: Реализуется через переопределение методов (method overriding). Метод в дочернем классе имеет ту же сигнатуру, что и метод в родительском классе. Какой именно метод будет вызван, определяется во время выполнения программы в зависимости от фактического типа объекта.
Пример на Python (динамический полиморфизм):
class Animal:
def sound(self):
pass # Базовый метод, который будет переопределен
class Dog(Animal):
def sound(self):
# Переопределение метода sound для класса Dog
print("Woof")
class Cat(Animal):
def sound(self):
# Переопределение метода sound для класса Cat
print("Meow")
# Функция, работающая с объектами через базовый класс Animal
def make_animal_sound(animal):
animal.sound()
# Использование полиморфизма
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Вызовет Dog.sound() -> Woof
make_animal_sound(cat) # Вызовет Cat.sound() -> Meow