class A { class S { } class C extends S { C(A c) { c.super(); } C(B b) { b.super(); } } } class B extends A {} class A1 { static class S { } class C extends S { C(A1 c) { c.super(); } } } class C2 { C2(String c){ c.super(); } } class Scratch { void method() { class A {} class B extends A { B() { new Scratch().super(); } } } static void method2() { class A {} class B extends A { B() { new Scratch().super(); } } } } class A3 { class S { } class C extends S { C(String c) { c.super(); } } }