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.
An anonymous class can extend a class or implement an interface at a time not both.
An inner class can be instantiated outside of a class provided it is not private but only using the reference of the outer class. That is you must create an instance of the outer class to instantiate the inner class. This is the case of (non static inner class). To instantiate a static inner class you dont require to first instantiate the outer class. You do like this:
Outer.inner in = new Outer.inner(); //inner is static