Так был разработан язык. Он обязывает вас всегда указывать параметры, указанные автором класса.
Представьте себе, если у вас был класс, который вы должны предоставить неотрицательное число, чтобы сделать его действительным. Если класс принял конструктор по умолчанию, то вы создали ситуацию, когда класс недопустим. Таким образом, если вы хотите, чтобы конструктор по умолчанию был доступен, то автор класса должен явно указать его, если он добавил конструктор с параметрами.
Вы должны сделать это:
class Test2
{
public Test2() { }
public Test2(int a)
{
//parameterized constructor present
}
}