Основы объектно-ориентированного программирования на языке C# book | Page 137
7.7 Полiморфiзм
namespace ConsoleApplication7
{
public class Figure
{
// поля класса
// виртуальный метод для переопределения
public virtual void Draw()
{
Console.WriteLine("Фигура");
}
}
class Circle : Figure
{
public override void Draw()
{
// печать название фигуры
base.Draw();
Console.WriteLine("Круг");
}
}
class Rectangle : Figure
{
public override void Draw()
{
// печать название фигуры
base.Draw();
Console.WriteLine("Прямоугольник");
}
}
class Triangle : Figure
{
public override void Draw()
{
// печать название фигуры
base.Draw();
Console.WriteLine("Треугольник");
}
}
class Program
{
static void Main(string[] args)
{
List shapes = new List();
shapes.Add(new Rectangle());
shapes.Add(new Triangle());
shapes.Add(new Circle());
foreach (Figure s in shapes)
{
s.Draw();
}
Console.ReadKey();
}
137