Back to questions
Junior — Middle
88
Можете ли вы объяснить концепцию полиморфизма в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
Полиморфизм в объектно-ориентированном программировании — это способность объектов разных классов реагировать на одинаковые сообщения (вызовы методов) по-разному. Это позволяет использовать один интерфейс для работы с разными типами объектов.
Например, в C++ можно определить базовый класс с виртуальной функцией, а в производных классах переопределить её:
class Animal {
public:
virtual void speak() {
std::cout << "Animal sound" << std::endl;
}
};
class Dog : public Animal {
public:
void speak() override {
std::cout << "Woof" << std::endl;
}
};
class Cat : public Animal {
public:
void speak() override {
std::cout << "Meow" << std::endl;
}
};
void makeAnimalSpeak(Animal* animal) {
animal->speak(); // вызов метода зависит от реального типа объекта
}
Таким образом, один и тот же вызов speak() ведёт себя по-разному в зависимости от типа объекта, что и есть полиморфизм.