📜  C#抽象

📅  最后修改于: 2020-10-31 03:13:22             🧑  作者: Mango

C#抽象

抽象类是在C#中实现抽象的方法。 C#中的抽象是隐藏内部细节并仅显示功能的过程。可以通过两种方式实现抽象:

  • 抽象类
  • 接口

抽象类和接口都可以具有抽象所必需的抽象方法。

抽象方法

声明为抽象且没有主体的方法称为抽象方法。它只能在抽象类中声明。它的实现必须由派生类提供。例如:

public abstract void draw();

C#中的抽象方法在内部是虚拟方法,因此派生类可以覆盖它。

您不能在抽象方法声明中使用静态和虚拟修饰符。

C#抽象类

在C#中,抽象类是一个声明为抽象的类。它可以具有抽象和非抽象方法。无法实例化。它的实现必须由派生类提供。在这里,派生类被迫提供所有抽象方法的实现。

让我们来看一个C#中的抽象类的示例,该示例具有一个抽象方法draw()。它的实现由派生类:Rectangle和Circle提供。两种类都有不同的实现。

using System;
public abstract class Shape
{
    public abstract void draw();
}
public class Rectangle : Shape
{
    public override void draw()
    {
        Console.WriteLine("drawing rectangle...");
    }
}
public class Circle : Shape
{
    public override void draw()
    {
        Console.WriteLine("drawing circle...");
    }
}
public class TestAbstract
{
    public static void Main()
    {
        Shape s;
        s = new Rectangle();
        s.draw();
        s = new Circle();
        s.draw();
    }
}

输出:

drawing ractangle...
drawing circle...