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(5, 10);
        shapes[1] = new Rectangle(4, 6);
        shapes[2] = new Circle(3);

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

        Console.ReadLine();
    }
}

输出结果:

Area: 25 Area: 24 Area: 28.2743338823081

C# 面向对象编程:抽象类与继承 - 计算不同图形的面积

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

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