I have some confusion regarding constructor when inheritance is used:
i have following code :
class Program
{
static void Main(string[] args)
{
ClassD obj = new ClassD(10);
Console.ReadLine();
}
}
class ClassA
{
public ClassA(int a)
{
Console.WriteLine("Constructor of ClassA");
}
}
class ClassB : ClassA
{
public ClassB(int a)
{
Console.WriteLine("Parameterized Constructor of ClassB");
}
}
class ClassC : ClassB
{
public ClassC(int a)
{
Console.WriteLine("Parameterized Constructor of ClassC");
}
}
class ClassD : ClassC
{
public ClassD(int a)
{
Console.WriteLine("Parameterized Constructor of ClassD");
}
}
when i write above code.. compiler generated 3 error saying :
'ClassA' does not contain a constructor that takes 0 arguments
'ClassB' does not contain a constructor that takes 0 arguments
'ClassC' does not contain a constructor that takes 0 arguments
so why these errors throwing ?? is it necessary to have default constructor in base class.
what if i dont want default constructor in base class but want to have default constructor in derived class ?