class Y { int size = 4; } class Z extends Y { class I { void foo() { System.out.println("size = " + Y.this.size); // illegal construct } } } class R { public void smu() { System.out.println(Z.super.toString()); } } class W { static String some = ""; static void m() { synchronized (some.this) { } } }