x is an instance variable. It requires an Object of A to exist before it can exist. In this example, you haven't created any Objects, your just using the static method.
When you create an Object of a class, java creates all the super classes FIRST so when you do A1 a1 = new A1();
Java creates an object of Object (the super class to all classes and of A) Then it creates an Object of A which causes x to be intialized on the heap. Finally it creates an Object of A1 which causes y to be intialized to the value of A's x which now exists.
Hope this helps
[This message has been edited by Carl Trusiak (edited January 16, 2001).]
[This message has been edited by Carl Trusiak (edited January 16, 2001).]