How can I call base class constructor from derived class in C#?

I would like to know, suppose if I have inherited a Class A in Class B then How can I call the constructor of the base class(Class A) in C#?

Asked by:- Vinnu
: 914 At:- 5/2/2018 9:29:46 AM
C# Call base constructor

1 Answers
profileImage Answered by:- Sam

yes you can call base class constructor from derived class in C#, In the inheritance hierarchy, always the base class constructor is called first. In c#, the base keyword is used to access the base class constructor as shown below.

We have used the ':base(...)' keyword after the constructor declaration with a specific parameter list.

Take a look the below example:

using System;
public class Person
    protected string ssn = "111-222-333";
    protected string name = "John Wick";

    public virtual void GetInfo()
        Console.WriteLine("Name: {0}", name);
        Console.WriteLine("SSN: {0}", ssn);
public class Employee : Person
    public string id = "ABC123";
    public override void GetInfo()
        // Calling the base class GetInfo method:
        Console.WriteLine("Employee ID: {0}", id);

public class TestClass
    public static void Main()
        Employee E = new Employee();

In the above example, both the base class, Person, and the derived class, Employee, have a method named Getinfo. By using the base keyword, it is possible to call the Getinfo method on the base class, from within the derived class.

Working fiddle :

Output of the above code will be

Name: John Wick
SSN: 111-222-333
Employee ID: ABC123


Here is the another working example:

using System;

public class A // This is the base class.
    public A(int value)
        // Executes some code in the constructor.
        Console.WriteLine("Base constructor A()");

public class B : A // This class derives from the previous class.
    public B(int value)
        : base(value)
        // The base constructor is called first.
        // ... Then this code is executed.
        Console.WriteLine("Derived constructor B()");

class Program
    static void Main()
        // Create a new instance of class A, which is the base class.
        // ... Then create an instance of B.
        // ... B executes the base constructor.
        A a = new A(0);
        B b = new B(1);


Base constructor A()
Base constructor A()
Derived constructor B()

Note:Class A and class B both introduce constructors. Class A is the parent or base class for class B, which is referred to as the derived class. 

In the above example, the constructor in class B calls into the constructor of class A using base initializer syntax. As we specify that the base class constructor is called upon entry to the derived constructor. In the B constructor, we use base initializer syntax.The compiler inserts the constructor call at the start of the method body.

At:- 5/2/2018 11:58:19 AM Updated at:- 5/2/2018 12:08:25 PM

Login/Register to answer
Register directly by posting answer/details

Full Name *

Email *

By posting your answer you agree on privacy policy & terms of use

Subscribe Now

Subscribe to our weekly Newsletter & Keep getting latest article/questions in your inbox weekly