Back to questions
Junior — Middle
68
Можешь объяснить разные типы полиморфизма в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании полиморфизм — это способность объектов разных классов реагировать на одинаковые сообщения (методы) по-разному. Основные типы полиморфизма:
-
Компиляционный (статический) полиморфизм — определяется во время компиляции.
- Перегрузка методов (method overloading): несколько методов с одним именем, но разными параметрами.
- Перегрузка операторов (operator overloading) — в C# ограничена, но возможна для некоторых операторов.
-
Выполненческий (динамический) полиморфизм — определяется во время выполнения.
- Переопределение методов (method overriding): подкласс предоставляет свою реализацию метода базового класса.
- Используется с ключевыми словами
virtual,overrideв C#.
Пример динамического полиморфизма в C#:
class Animal {
public virtual void Speak() {
Console.WriteLine("Animal sound");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Bark");
}
}
Animal myDog = new Dog();
myDog.Speak(); // Выведет "Bark"
Таким образом, полиморфизм позволяет писать гибкий и расширяемый код, где объекты могут вести себя по-разному, несмотря на общий интерфейс.