In this article I am trying to show the order in which constructor and destructors are called for a class and its base class.
It is of great importance that we should know constructors work in an inherited manner – especially in interviews.
This will give us more clarity in creating or destroying objects in constructors/destructors.
We have a class named ChildClass having a constructor and destructor
Also, a class named ParentClass having a constructor and destructor
Whenever the constructor or destructor is called it logs a message to the main form.
We create an instance of ChildClass and make Garbage Collector to destroy the instance.
Thus we are able to invoke the entire constructors/destructors involved.
We are able to see the result like: Even though we are creating the instance of ChildClass the ParentClass constructor is invoked first.
But while on destruction the ChildClass destructor is invoked first.
public class ParentClass
MainForm.AddMessage("ParentClass constructor invoked");
MainForm.AddMessage("ParentClass destructor invoked");
public class ChildClass : ParentClass
MainForm.AddMessage("ChildClass constructor invoked");
MainForm.AddMessage("ChildClass destructor invoked");