Se puede declarar clases dentro de otras clases. Sin embargo, dichas clases no pueden tener miembros estáticos no-finales.
Todos los miembros de la clase contenedora están visibles desde la clase interior (diferencia a C++ donde hay que declarar la clase interior como friend para obtener dicho efecto).
Extender clases ínteriores se hace igual que clases normales; solamente hay que tener en cuenta que para una clase ínterior siempre hace falta la existencia de un objeto de su clase contenedora antes de que se pueda construir, es decir, tiene que ser claro de dónde viene su super.