抽象类是在C#中实现抽象的方法。C#中的抽象是隐藏内部细节并仅显示功能的过程。抽象可以通过两种方式实现:
- Abstract class
- Interface
抽象类和接口都可以有抽象所必需的抽象方法。
抽象方法
被声明为抽象且没有正文的方法称为抽象方法。它只能在抽象类内部声明。其实现必须由派生类提供。例如:
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...