Abstract Class
Abstract class is a restricted class that cannot be used to create objects (to access it, it must be inherited from another class). Similar to abstract class there is something called Abstract method. Abstract method can only be created inside Abstract class and it does not have a body. The body of the Abstract method will be provided by the child class. A normal class cannot have abstract methods but an abstract class can have both abstract and regular methods.
CODE
EG 1 . Creating a Abstract class called Shape and Inheriting to Class Rectangle.
abstract class Shape {
    //Abstract methods
    public abstract double Area();
    public abstract double Volume();
    public abstract double Perimeter();
}
class Rectangle : Shape {
    public double length, width, height;
    public override double Area() {
        return length * width;
    }
    public override double Volume() {
        return Area() * height;
    }
    public override double Perimeter() {
        return 2 * (length+width);
    }
}
class Program {
    static void Main(string[] args) {
        //Upcasting
        Shape s1 = new Rectangle();
    }
}
(Click Here, For more exercises)