0

サブクラスが最終的なスーパークラスから継承できないことは知っていますが、私の本のこのサブクラスのセクションでは、ネストされたクラスの場合に何が起こるかを示していません。

4

3 に答える 3

1

いいえ。

クラスを final にすることの要点は、継承できないようにすることです。

ここの最後の段落を参照してください。

于 2013-09-13T23:00:37.123 に答える
1

いいえ、JVM はネストされたクラスOuter$Innerをバイナリ互換性のために、内部であろうとなかろうと最終クラスを拡張しようとはしません。実際、実行時/リンク時に一般に保持されないコンパイル時の違いを除けば、$名前に a を含む単なるクラスである静的な内部クラス以上のものではありません。コンパイラは単にそれを早期にキャッチします。

拡張/サブタイプの関係が暗示または指定されていないため、最終クラス内の内部クラスは問題ありません。

試してみてください。あなたのコンパイラは、エラーのためにあなたを打ち負かすことはありません。その最高の特性は、厳密な構文であっても、その忍耐力です。ここで聞くより自分で調べたほうが早いです。

于 2013-09-13T23:01:34.047 に答える
0

私はあなたの質問を最初に誤解したと思います。ただし、徹底するには:

ネストされたクラスは親から継承されないため、外側のクラスのすべてのインスタンスに内側のクラスが含まれるため、最終クラスに内側のクラスが含まれる可能性があります (内側のクラスを宣言するときに static が使用されない限り)。外部クラスと内部クラスの間の関係に暗黙の継承はありません。

また、外側のクラスは最終的なものと見なされ、拡張できないため、内側のクラスは外側のクラスから継承できませんでした。

于 2013-09-13T23:04:54.580 に答える