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.
At line 3, you are telling x to refer an object of Y at runtime. So, you can "get the object back" from x at line 4. But if you remove line 3, then x is pointing to an Object of X (which has no knowledge about Y). So obviously you cant ask x something which it doesnt know about. Hope this helps.