在C#中,抽象類是一種不能被實例化的類,通常用于定義一組通用的屬性和方法,然后由具體的子類來實現這些屬性和方法。下面是一個簡單的示例,展示了如何定義和使用抽象類:
// 定義一個抽象類
public abstract class Shape
{
public abstract double GetArea();
public abstract double GetPerimeter();
}
// 定義一個具體的子類
public class Circle : Shape
{
private double radius;
public Circle(double r)
{
radius = r;
}
public override double GetArea()
{
return Math.PI * radius * radius;
}
public override double GetPerimeter()
{
return 2 * Math.PI * radius;
}
}
// 使用抽象類
class Program
{
static void Main()
{
Circle circle = new Circle(5);
Console.WriteLine("Area of circle: " + circle.GetArea());
Console.WriteLine("Perimeter of circle: " + circle.GetPerimeter());
}
}
在上面的示例中,我們定義了一個抽象類Shape,其中包含了兩個抽象方法GetArea和GetPerimeter。然后我們定義了一個具體的子類Circle,實現了Shape類的兩個抽象方法。最后在Main方法中,我們實例化了一個Circle對象,并調用其方法來計算圓的面積和周長。
需要注意的是,抽象類不能被實例化,只能被用作父類來派生具體的子類。在子類中,必須實現抽象類中定義的所有抽象方法。