次のコードは期待どおりにコンパイルされます。
class A {
class B {}
class C extends B {}
}
しかし、 class B
extends classがある場合A
、コンパイル エラーが発生します。
class A {
class B extends A {}
class C extends B {} // <-- Error here
}
いくつかの中間のため、タイプ A の囲んでいるインスタンスは使用できません コンストラクターの呼び出し。
ここで何が起きてるの?A
拡張すると何かが変わるのはなぜですか?
編集:どうやら、これは Java 7 で正常にコンパイルされます。古い Java バージョンでコンパイルされなかった理由と、それを可能にするために Java 7 で何が変更されたかについての説明をいただければ幸いです。
関連項目: