class OtherClass { public class InnerClass {} } class Main { } class Main1 extends OtherClass.InnerClass { } class NonDefaultConstructorContainer { public class Inner { public Inner(String s) {} } } class UsageWithParenthesis extends NonDefaultConstructorContainer.Inner { public UsageWithParenthesis() { (new NonDefaultConstructorContainer()).super(""); } public UsageWithParenthesis(NonDefaultConstructorContainer e) { (e).super(""); } } class ClassA { public class InnerSuperClass { public void method() { } } } class ClassB extends ClassA { public static class StaticInnerSubClass extends InnerSuperClass { public StaticInnerSubClass(boolean f) { (f ? new ClassD() : new ClassC()).super(); } public StaticInnerSubClass() { new ClassD().super(); } public StaticInnerSubClass(String s) { new ClassB().super(); } } } class ClassC extends ClassA {} class ClassD extends ClassC {}