【C#】ポリモーフィズムのサンプル(図形)

C#でポリモーフィズムを使用するには、次のようにします。

抽象クラスを定義します。抽象クラスには、共通して使用するメソッドを定義します

abstract class Shape
{
    public abstract double GetArea();
}

抽象クラスを継承し、派生クラスを定義します。派生クラスでは、抽象クラスに定義されたメソッドをオーバーライドします。

class Rectangle : Shape
{
    public double Width { get; set; }
    public double Height { get; set; }

    public Rectangle(double width, double height)
    {
        Width = width;
        Height = height;
    }

    public override double GetArea()
    {
        return Width * Height;
    }
}

class Circle : Shape
{
    public double Radius { get; set; }

    public Circle(double radius)
    {
        Radius = radius;
    }

    public override double GetArea()
    {
        return Radius * Radius * Math.PI;
    }
}

抽象クラスの変数を使用して、派生クラスのインスタンスを生成します

Shape rectangle = new Rectangle(3, 4);
Shape circle = new Circle(5);

抽象クラスの変数を使用して、派生クラスのメソッドを呼び出します

Console.WriteLine("Rectangle's area: " + rectangle.GetArea());
Console.WriteLine("Circle's area: " + circle.GetArea());

これにより、同じメソッドを呼び出すことで、異なるクラスのインスタンスのメソッドが呼び出されることができます。これがポリモーフィズムとなります。

C#

Posted by hidepon