Constructor chaining is the process of one constructor calling another constructor in the same class, or in a derived class. The most common use for constructor chaining is to initialize inherited member variables to their proper starting values. When one constructor calls another, the first thing that happens is that the body of the called constructor is executed. This can lead to problems if the base class constructor has not yet finished initializing the object.   To avoid this, Java provides the keyword super, which can be used to call the base class constructor from within a derived class constructor. By using super, we can ensure that the base class constructor is always called before the body of the derived class constructor is executed. In this way, we can be sure that our objects are always initialized properly.