// call to super must be first class a { a() {} a(int i) {} } class b extends a { b() { int i = 3; super(); } b(int i) { this(); super(2); } b(char i) { super(4); this(); } b(String s) { try { super(2); } finally { } } b(String s, int i) { { super(2); } } void f() { super(); } void g() { this(); } } class Z { Z() { Object x = super(); } } class O extends A.B { public O(A a) { int i = 0; a.super(); } public O(A a,int i) { a.super(); i = 0; } } class A { class B { class C{} } }