Sobes.tech
Back to questions
Junior — Middle
68

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

Answer from AI

sobes.tech AI

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

Существует два основных вида полиморфизма:

  1. Компиляционный (статический) — перегрузка методов и операторов.
  2. Выполненческий (динамический) — переопределение методов в наследниках.

Пример динамического полиморфизма в C#:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal speaks");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Bark");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("Meow");
    }
}

// Использование
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak(); // Выведет "Bark"
myCat.Speak(); // Выведет "Meow"

Таким образом, один и тот же вызов метода Speak() ведет себя по-разному в зависимости от типа объекта.