LeetCampus
Interview Question

Can you call a constructor of a class inside the another constructor?

July 24, 2025
0 views
Difficulty: Medium
Popularity: Common
Share on

Question Explanation

Calling a constructor of a class inside another constructor is a concept that often comes up in object-oriented programming (OOP). This technique is known as constructor chaining. Interviewers ask this question to assess a candidate's understanding of OOP principles, particularly how constructors work and the relationships between classes. Understanding constructor chaining is essential for creating robust and maintainable code. It allows for code reuse, reducing redundancy and improving clarity. Common misconceptions include thinking that a constructor cannot call another constructor, or that doing so is always necessary. In reality, constructor chaining can enhance the flexibility of your code when used appropriately. It's also a good opportunity for candidates to demonstrate their knowledge of inheritance, polymorphism, and how these concepts interact with constructors. Real-world applications include initializing complex objects in a clean manner and ensuring that all necessary setup is performed without duplicating code. Overall, this question tests both theoretical knowledge and practical application skills in OOP.

Sample Answers

Example 1: Basic Constructor Chaining

In many programming languages, such as Java and C#, you can call one constructor from another using the this() or base() keyword. For example, in Java:

class Animal {
    String name;
    Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    Dog() {
        super("Default Dog"); // Calling the parent constructor
    }
}
}

In the example above, the Dog class constructor calls the Animal class constructor, passing a default name. This is useful for ensuring that all properties are initialized correctly without duplicating code. It promotes code reuse and adheres to the DRY (Don't Repeat Yourself) principle.

Example 2: Constructor Chaining in Inheritance

Constructor chaining is particularly useful in inheritance scenarios. For instance, consider a scenario where you have a Vehicle class and a Car class:

class Vehicle {
    int wheels;
    Vehicle(int wheels) {
        this.wheels = wheels;
    }
}

class Car extends Vehicle {
    String model;
    Car(String model) {
        super(4); // Calling the Vehicle constructor with 4 wheels
        this.model = model;
    }
}
}

In this case, the Car constructor calls the Vehicle constructor to ensure that the number of wheels is set correctly. This not only keeps the code organized but also makes it clear that all Car objects are vehicles with four wheels. It demonstrates a clear relationship between the parent and child classes.

Example 3: Handling Multiple Constructors

You can also manage multiple constructors using chaining to provide different initialization options. For instance:

class User {
    String username;
    String email;

    User(String username) {
        this(username, "default@example.com"); // Chaining to another constructor
    }

    User(String username, String email) {
        this.username = username;
        this.email = email;
    }
}

In this example, the User class has two constructors. The first constructor provides a default email while calling the second constructor. This approach offers flexibility in object creation and maintains clean code. It also allows for easier future modifications, as changes in the core constructor logic will automatically propagate to all entry points.

Keywords

constructor chainingobject-oriented programminginheritancepolymorphismcode reuse

Ready to practice more questions?

Explore our collection of technical interview questions from top companies.

View All Questions