using System;

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

class Triangle : Shape
{
    private double n;
    private double m;

    public Triangle(double n, double m)
    {
        this.n = n;
        this.m = m;
    }

    public override double calArea()
    {
        return 0.5 * n * m;
    }
}

class Rectangle : Shape
{
    private double n;
    private double m;

    public Rectangle(double n, double m)
    {
        this.n = n;
        this.m = m;
    }

    public override double calArea()
    {
        return n * m;
    }
}

class Circle : Shape
{
    private double n;

    public Circle(double n)
    {
        this.n = n;
    }

    public override double calArea()
    {
        return Math.PI * n * n;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Shape[] shapes = new Shape[3];
        shapes[0] = new Triangle(3, 4);
        shapes[1] = new Rectangle(5, 6);
        shapes[2] = new Circle(2);

        foreach (Shape shape in shapes)
        {
            Console.WriteLine('Area: ' + shape.calArea());
        }
    }
}

输出结果: Area: 6 Area: 30 Area: 12.566370614359172

C# 面向对象编程:抽象类、继承和多态示例 - 计算图形面积

原文地址: https://www.cveoy.top/t/topic/qqDK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录