c#写一个抽象类(包含新的类-属性、方法、构造方法都要有,两个子类,用数组创建三个对象)
时间: 2024-09-24 12:15:44 浏览: 43
在C#中,你可以这样编写一个简单的例子,涉及抽象类、属性、方法、构造方法以及两个派生类:
首先,我们定义一个抽象父类`Shape`,它包含了基本属性和方法:
```csharp
public abstract class Shape
{
// 抽象属性,表示形状的尺寸
public abstract double Size { get; }
// 定义一个通用的绘制方法,未实现
public abstract void Draw();
// 构造方法
public Shape(double size)
{
this.Size = size;
}
}
```
然后,我们可以创建两个具体的子类`Circle`和`Rectangle`,分别继承自`Shape`并实现`Size`属性和`Draw`方法:
```csharp
public class Circle : Shape
{
private double radius;
public Circle(double radius)
: base(radius)
{
this.radius = radius;
}
public override double Size => radius * radius * Math.PI;
public override void Draw()
{
Console.WriteLine($"Drawing a circle with radius {radius}");
}
}
public class Rectangle : Shape
{
private double width, height;
public Rectangle(double width, double height)
: base(width * height)
{
this.width = width;
this.height = height;
}
public override double Size => width * height;
public override void Draw()
{
Console.WriteLine($"Drawing a rectangle with width {width} and height {height}");
}
}
```
接下来,我们可以创建一个数组,并用这个数组存储这三个形状的对象:
```csharp
Shape[] shapes = new Shape[3]
{
new Circle(5),
new Rectangle(4, 6),
// 如果你想要第三个对象,可以添加一个新的Circle实例或者Rectangle实例
// new Circle(3) 或 new Rectangle(2, 2)
};
foreach (var shape in shapes)
{
shape.Draw();
}
```
阅读全文