A)
class constructorsA {
constructorsA()
{
System.out.println("constructor of super class");
}
}
class constructorB extends constructorsA
{
constructorB()
{
System.out.println("constructor of sub class");
}
}
class constructoroutput
{
public static void main(String args[])
{
constructorB b=new constructorB();
}
}
Output:
constructor of super class
constructor of sub class
But first sub class constructor is called. Then the super class constructor is called. But , the compiler write super(); method as first statement in the called object constructor class, so it is used to calling parent class constructor. Without that line the parent class constructor doesn’t called by sub class.
So that, call (i.e, super();) is known as an implicit call to zero argument constructor of the super class. Because of “super()” method that calls parent class constructor then that is executed and display the parent class constructor output. Then the sub class constructor remaining code is executed and displayed.
Other details:
->Calling method belong to B. That calls method which is belong to A. That B’s method calls the A’s method without using reference. Because calling and called method belongs to same object that is B’s object.
->Every instance variable of parent classes are included the size of child class their irrespective of access specifiers. Even though the parent class contains private variables it includes size of child class object size, but even though that private variable can access in the child class. So, access mode is not considered for the child class object when extend parent class.
Comments
Post a Comment