なぜこれが許可されているのか、私は困惑しています
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 {
}
}
ここで何が起こっているのですか?また、内部クラスの継承がどのように機能するかについての詳細情報はどこで入手できますか?
編集かなり貧弱なアイデアの両方に出くわしました。内部クラスは外部クラスを拡張し、内部クラスは他の静的内部クラスを拡張します。正確に何が起こっているのか、これをどのようにリファクタリングする必要があるのか わかりませんでした。最終的には、内部クラスをヤンクアウトして外部クラスにカプセル化しました。