Abstraction class is a special class that cannot be instantiated. Abstraction class is used in ASP.net (c#) because ASP.net has not multiple inheritances so we can use abstraction classes alternatively. Abstraction is inherited through sub classes, functions, forms etc.  It is alternate to use multiple inheritances in ASP.net. Abstract can use its different modifiers specifies but in abstraction class this feature is not included in interface class. Abstraction class is faster than interface class. Abstraction have implementation in class also. If we have to use common behavior in our class then abstract class is better option. We can define abstract class with keyword Abstract class. If you are designing small units then use interface class if you use design large units of functions then use abstract class.

abstrac Class in C#

public abstract class TestClass
{
    // Class members can define here.
}

Abstract class can also defines abstract methods also. I have given very good example as given below.

public abstract class TestClass
{
    public abstract void DoTestwork(int j);
}
Abstract class have not implementation. Abstract class can override its methods from base class. When a abstract class inherits methods from its base class, abstract class can overrides its virtual methods class methods. I have provided a very good example for the same.

public class Test
{
    public virtual void DoSampleMethod(int j)
    {
        // Original implementation.
    }
}

public abstract class TestNew : Test
{
    public abstract override void DoWork(int i);
}

public class Funny : TestNew
{
    public override void DoSampleMethod(int j)
    {
        // New implementation.
    }
}

Here is explained in detail Interface Class, moreover difference between Interface and Abstraction Class explained with good example.