Вы имеете в виду ...
abstract public class Outer {
public Outer() { System.out.println("Outer.ctor"); }
abstract public String foo();
}
public class Inner {
public static class Inner2 extends Outer {
public Inner2() { super(); }
public String foo() { return "Inner2.foo";}
}
public static void main(String[] args) {
System.out.println("main: " + new Inner2().foo());
}
}
...?
$ javac -d . Outer.java Inner.java
$ java -cp . Inner
Outer.ctor
main: Inner2.foo
(лишние вызовы super () просто иллюстративны и не нужны.)