In the InnerTest instance there is a id field inherited, however Outer.this.id is also accesible. The latter is a field of the containing class, it will be initialized by a constructor of its class:
new OuterTest("STP"). The former would be intialized by InnerTest constructor, either directly
(id="something" or indirectly by calling
super(); Try System.out.println(OuterTest.this.id +"\t"+ id);
and you will see
STP Default
STP Default