In your example code, it's not necessary because the compiler will implicitly call the default constructor if you don't specify one. However, imagine you had two constructors in the base class:
class A
{
public A()
{
Console.WriteLine("A");
}
public A(string foo)
{
Console.WriteLine(foo);
}
}
Now you can specify which base class constructor to call:
class B : A
{
public B() : base("Foo")
{
Console.WriteLine("B");
}
}
Also, if your base class lacks a default constructor (or if that constructor is inaccessible do to it's protection level), then specifying one in the subclass is required:
class A
{
public A(string foo)
{
Console.WriteLine(foo);
}
}
class B : A
{
// Error: 'A' does not contain a constructor that takes 0 arguments
public B()
{
Console.WriteLine("B");
}
}