When you extend an inner class, the default constructors are no longer created... or they no longer work. When you try to create a class of InheritInner, you are also trying to create the sub-object Inner (which is the super class). But since, Inner is an inner class, you need a refrence to the enclosing class object. This can be acheived by passing the reference of the Outer class to the constructor of InheritInner & explicitly invoking the constructor of Outer.
For the complete explanation, refer Bruce Eckel's Thinking in
Java. Thats one hell of a book.
[ September 12, 2002: Message edited by: Vin Kris ]