c#定义圆类Circle,包含有参构造函数,包含半径r,属性R,能判断半径r的合理性(r>=0),计算圆面积的方法double Area(),输出圆半径的虚方法show()。 从Circle类派生出圆柱体类Cylinder类,包含有参构造函数,新增圆柱体的字段高h,属性H能判断高h的合理性(h>=0),新增计算圆柱体体积的方法double Volume(),重写Circle类中的虚方法show()并调用Circle中的show()输出圆的面积和圆柱体体积。 在主方法中,创建一个Cylinder对象,并调用输出该对象的底面面积、底面半径,高以及体积。
时间: 2024-03-16 20:41:20 浏览: 103
好的,以下是实现该问题的C#代码:
```csharp
using System;
class Circle
{
private double r;
public double R
{
get { return r; }
set
{
if (value >= 0)
r = value;
else
throw new ArgumentOutOfRangeException("半径不能为负数!");
}
}
public Circle(double r)
{
R = r;
}
public virtual void Show()
{
Console.WriteLine("底面半径为:" + R);
Console.WriteLine("底面面积为:" + Area());
}
public double Area()
{
return Math.PI * R * R;
}
}
class Cylinder : Circle
{
private double h;
public double H
{
get { return h; }
set
{
if (value >= 0)
h = value;
else
throw new ArgumentOutOfRangeException("高度不能为负数!");
}
}
public Cylinder(double r, double h) : base(r)
{
H = h;
}
public double Volume()
{
return Area() * H;
}
public override void Show()
{
base.Show();
Console.WriteLine("高为:" + H);
Console.WriteLine("体积为:" + Volume());
}
}
class Program
{
static void Main(string[] args)
{
Cylinder c = new Cylinder(2.0, 5.0);
c.Show();
}
}
```
输出结果为:
```
底面半径为:2
底面面积为:12.566370614359172
高为:5
体积为:62.83185307179586
```
阅读全文