Java Object Creation of Inherited Class

In inheritance, subclass acquires super class properties. An important point to note is, when subclass object is created, a separate object of super class object will not be created. Only a subclass object object is created that has super class variables.

This situation is different from a normal assumption that a constructor call means an object of the class is created, so we can’t blindly say that whenever a class constructor is executed, object of that class is created or not.

// A Java program to demonstrate that both super class
// and subclass constructors refer to same object
// super class
class Fruit
    public Fruit()
        System.out.println("Super class constructor");
        System.out.println("Super class object hashcode :" +
// sub class
class Apple extends Fruit
    public Apple()
        System.out.println("Subclass constructor invoked");
        System.out.println("Sub class object hashcode :" +
        System.out.println(this.hashCode() + "   " +
        System.out.println(this.getClass().getName() + "  " +
// driver class
public class Test
    public static void main(String[] args)
        Apple myApple = new Apple();


super class constructor 
super class object hashcode :366712642
sub class constructor 
sub class object hashcode :366712642
366712642   366712642
Apple  Apple

As we can see that both super class(Fruit) object hashcode and subclass(Apple) object hashcode are same, so only one object is created. This object is of class Apple(subclass) as when we try to print name of class which object is created, it is printing Apple which is subclass.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment



load comments

Subscribe to Our Newsletter