How Default Base Class Constructors Are Used with Inheritance

  • google plus

In Brief...

A derived Java class does not inherit a constructor from its base class. If a base class has a default constructor, i.e., a constructor with no arguments, then that constructor is automatically called when a derived class is instantiated if the derived class has its own default constructor. A default constructor is automatically provided by the compiler if no constructors are present in the Java source code. To understand how default constructors are used with inheritance, follow these 10 steps.

Instructions

  1. Open your text editor and type in the following Java statements:
    Java Source for Default Constructor
    The Person class does not have a default constructor defined in the source code. For purposes of clarity, I've included a default constructor that is commented out to show what type of constructor is automatically generated by the compiler.

  2. Save your file as Person.java.

  3. Open a command prompt and navigate to the directory containing your Java program. Then type in the command to compile the source and hit Enter.
    Compile Source for Default Base Class

  4. Create a new file in your text editor. Type in the following Java statements:
    Java Source for Derived Class
    The Employee class inherits from Person and does not have a default constructor defined in the source code. Again, I've provided a comment to show the constructor that the compiler will generate. The default constructor in the Person class is not inherited by Employee and therefore a default constructor must be provided in Employee, either automatically by the compiler or coded by the developer. Note that the compiler will also generate a call to the base class default constructor.

  5. Save your file as Employee.java.

  6. In the command prompt, type in the command to compile the source and hit Enter.
    Compile Source for Derived Class

  7. Now you will create an application to test your default constructors. Create a new file in your text editor and type in the following Java statements:
    Java Source for Tester Class
    The program instantiates an Employee object by calling the default constructor in the Employee class. The program then calls the setter methods to establish values for the properties.

  8. Save your file as HowDefaultBaseConstructorsAreUsedWithInheritance.java.

  9. Return to the command prompt. Then type in the command to compile the source and hit Enter.
    Compile Source for Tester Class

  10. You will now test your program. Type in the command to run the Java runtime launcher and then hit Enter. The output verifies that the Employee and Person objects were created successfully using the default constructors.
    Run Tester for Derived Class

Author: Stephen Withrow

Stephen has over 30 years' experience in training, development, and consulting in a variety of technology areas including Java, C, C++, XML, JavaScript, AJAX, Tomcat, JBoss, Oracle, and DB2. His background includes design and implementation of business solutions on client/server, Web, and enterprise platforms. Stephen is a published writer in both technical and non-technical endeavors. Stephen received an undergraduate degree in Computer Science and Physics from Florida State University.

Discuss