Что такое полиморфизм в программировании?
Answer from AI
sobes.tech AI
Полиморфизм — это способность объектов разных классов реагировать на один и тот же вызов метода по-разному. Это достигается путем использования наследования, абстрактных классов и интерфейсов. В C# полиморфизм явлен через переопределение (overriding) методов базового класса в производных классах и перегрузку (overloading) методов.
Примеры полиморфизма:
-
Переопределение методов (Runtime Polymorphism): Производный класс предоставляет собственную реализацию метода, объявленную в базовом классе. Для этого в базовом классе используется ключевое слово
virtual, а в производном —override.// Базовый класс class Shape { // Виртуальный метод, который может быть переопределен public virtual void Draw() { // Реализация по умолчанию } } // Производный класс 1 class Circle : Shape { // Переопределение метода Draw public override void Draw() { // Реализация для круга } } // Производный класс 2 class Square : Shape { // Переопределение метода Draw public override void Draw() { // Реализация для квадрата } }В этом случае можно создать список объектов
Shapeи вызвать методDrawдля каждого из них, и будет вызвана конкретная реализация для каждого типа фигуры. -
Перегрузка методов (Compile-time Polymorphism): Несколько методов с одним и тем же именем, но с разными сигнатурами (количество или типы параметров) в одном классе.
class Calculator { // Перегруженный метод Add (для int) public int Add(int x, int y) { return x + y; } // Перегруженный метод Add (для double) public double Add(double x, double y) { return x + y; } }
Полиморфизм способствует созданию более гибкого, расширяемого и легко поддерживаемого кода. Он позволяет писать обобщенный код, который может работать с объектами разных типов.