我很困惑为什么这是允许的
public class Foo {
class Bar extends Foo {
}
}
然而这是不允许的
public class Foo {
class Bar extends Foo {
}
class Fooey extends Bar {
}
}
编译器在调用超类型构造函数之前通知它不能引用 Fooey.this。
这是允许的
public class Foo {
static class Bar extends Foo {
}
class Fooey extends Bar {
}
}
这里发生了什么?我在哪里可以找到有关内部类继承如何工作的更多信息?
编辑我想到了两个相当糟糕的想法;内部类扩展外部类,内部类扩展其他静态内部类。我不确定到底发生了什么以及我应该如何重构它。我最终只是抽出内部类并将它们封装在外部类中。