在C#中使用关键字 abstract 来定义抽象类和抽象方法。不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例。如


   abstract class ShapesClass    //抽象类的声明

   {

       abstract public int Area();

   }

   class Square : ShapesClass

   {

       int x, y;

       public override int Area() //重写抽象方法

       {

           return x * y;

       }

   }


        一个抽象类可以包含抽象和非抽象方法,当一个类继承于抽象类,那么这个派生类必须实现所有的基类抽象方法。


using System;

namespace test

{

abstract class MyAbs

   {

       public void NonAbMethod()

       {

           Console.WriteLine("Non-Abstract Method");

       }

       public abstract void AbMethod(); // 抽象方法

   }

   class MyClass : MyAbs   //必须实现基类的抽象方法

   {

       public override void AbMethod()

       {

           Console.WriteLine("Abstarct method");

       }

   }

   class MyClient

   {

       public static void Main()

       {

           MyClass mc = new MyClass();

           mc.NonAbMethod();

           mc.AbMethod();

       }

   }

}