:一个经典的继承案例是图形绘制应用程序。在这个应用程序中,可以定义一个基类Shape,然后派生出不同的子类,如Circle、Rectangle、Triangle等,来表示不同的图形。这样,每个子类都可以继承Shape类的一些基本属性和方法,如位置、大小、颜色、绘制等,从而避免了代码重复,提高了代码的可维护性和可扩展性。
时间: 2024-03-07 17:53:17 浏览: 55
您说得非常好!下面是一个简单的继承案例,来说明如何使用基类Shape,来派生出不同的子类Circle、Rectangle、Triangle等:
```csharp
public class Shape
{
public int X { get; set; }
public int Y { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public Color Color { get; set; }
public virtual void Draw(Graphics g)
{
// 绘制形状的默认实现
}
}
public class Circle : Shape
{
public override void Draw(Graphics g)
{
g.DrawEllipse(new Pen(Color, 2), X, Y, Width, Height);
}
}
public class Rectangle : Shape
{
public override void Draw(Graphics g)
{
g.DrawRectangle(new Pen(Color, 2), X, Y, Width, Height);
}
}
public class Triangle : Shape
{
public override void Draw(Graphics g)
{
Point[] points = new Point[]
{
new Point(X + Width / 2, Y),
new Point(X, Y + Height),
new Point(X + Width, Y + Height)
};
g.DrawPolygon(new Pen(Color, 2), points);
}
}
```
在这个例子中,我们定义了一个基类Shape,包含一些基本的属性和方法,如位置、大小、颜色、绘制等。然后,我们派生出不同的子类,如Circle、Rectangle、Triangle等,并覆盖基类中的Draw方法,来实现自己的绘制逻辑。这样,我们就可以方便地创建和绘制不同的形状,而无需重复编写相同的代码,从而提高了代码的可维护性和可扩展性。
阅读全文