Tushar Goel wrote: . . . non static method then why it is running without object inside constructor. . . .
A constructor always runs inside an instance. You can therefore always call an instance method from inside the constructor without a compiler error.
Say subclass/superclass not parent/child.
Good design: mark any methods called from inside the constructor
private or
final or both, to avoid surprises if the method is overridden in subclasses. That code example does not follow such good design. You will doubtless know that exam questions often use bad design in the hope of confusing the reader, and this question appears to have succeeded in that respect
I presume you already know the sequence of events whenever an object is created: remind yourself in the
Java Language Specification. You may have to scroll up and down from that link. What you have to do to solve that question is to print the code on a piece of paper (plus
 public Object()), and get a soft pencil and follow the sequence of events with your pencil. Whenever you get a method call, work out which version of the method (overridden or overriding) you are calling. Then
you should easily be able to work out why you are getting 40.