Полиморфизм в C#
В этом уроке вы с помощью полиморфизма вызовете один и тот же метод у разных фигур через общий тип.
Введение
Полиморфизм (polymorphism) позволяет работать с объектами разных типов через общий тип, не проверяя каждый тип с помощью if. Каждый тип объекта сам решает, как выполнить свой метод.
Абстрактный класс Shape объявляет метод Area() без реализации, а Circle и Square реализуют каждый свой расчёт площади через override. Хотя переменная shape в цикле имеет общий тип Shape, во время выполнения вызывается нужная версия для каждого объекта, и получается 12.57 и 9.00.
Пример на C#, который можно запустить
using System;
abstract class Shape { public abstract double Area(); }
class Circle(double radius) : Shape { public override double Area() => Math.PI * radius * radius; }
class Square(double side) : Shape { public override double Area() => side * side; }
class Program
{
static void Main()
{
Shape[] shapes = { new Circle(2), new Square(3) };
foreach (Shape shape in shapes) Console.WriteLine($"{shape.Area():F2}");
}
}
12.57
9.00Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи