This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
B class calls super in its constructor to create class A object. This is required because class B extends class A. Which essentially means that class B inherit some characteristics of class A. Now to make it possible, it is required that class B object should contain class A object also.
It's misleading to say that class B object contains a class A object - it doesn't. It is a class A object. And it's also not true that super() creates an instance of class A.
I'd put it like this. Constructors don't create objects, they initialise them. A class B object IS-A class A object, and so the parts of it that it's inherited from class A need to be initialised as well. That's why the super-class constructor must always be called.