以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据你的需求,我将提供一个C#语言的示例代码,实现抽象类Shape
以及派生类Rectangle
和Circle
,并在Main
方法中演示如何使用这些类。
首先,定义抽象类Shape
:
public abstract class Shape
{
public abstract double Perimeter();
public abstract double Area();
}
接着,定义派生类Rectangle
:
public class Rectangle : Shape
{
private double width;
private double height;
public Rectangle(double width, double height)
{
this.width = width;
this.height = height;
}
public override double Perimeter()
{
return 2 * (width + height);
}
public override double Area()
{
return width * height;
}
}
然后,定义派生类Circle
:
public class Circle : Shape
{
private double radius;
public Circle(double radius)
{
this.radius = radius;
}
public override double Perimeter()
{
return 2 * Math.PI * radius;
}
public override double Area()
{
return Math.PI * radius * radius;
}
}
最后,在Main
方法中实现数组的使用和输出:
public static void Main(string[] args)
{
Shape[] shapes = new Shape[]
{
new Rectangle(3, 4),
new Circle(5),
new Rectangle(10, 5),
new Circle(7)
};
foreach (Shape shape in shapes)
{
Console.WriteLine($"{shape.GetType().Name}: 周长为:{shape.Perimeter():F2}, 面积为:{shape.Area():F2}");
}
}
这段代码将创建一个包含Rectangle
和Circle
实例的数组,并使用GetType().Name
来获取每个实例的类型名称,然后调用Perimeter
和Area
方法,并按照指定格式输出结果。
请注意,输出格式中的F2
指定了浮点数的格式化,保留两位小数。
至于参考资料,你可以查看以下链接:
这些链接提供了C#中抽象类、继承和数学函数使用的官方文档。