abstract class B extends A { } class Test { static void test() { B b = new B() { public int bar(String s) { return s.length(); } }; int t1 = b.getX(); b.setX(t1 + 1); String t2 = b.X; String t3 = A.X; b.foo(1); b.foo2(2); A.foo2(3); b.new X(); new B.Y(); } }