Javaコンパイラは、最初のステートメントsuper()の後にコンストラクタのインスタンス初期化ブロックをコピーします。 super()は、直接の親クラスのコンストラクタを呼び出すために使用されることはすべてわかっています。コンパイラが自動的にスーパークラスをコンストラクタに追加する親クラスを継承しません。だから、インスタンス初期化ブロックを使用するときにsuper()を追加する理由は何ですか?あなたは常にあなたがそれを初期化する前に、クラスの親を初期化する必要がなぜjavaコンパイラは最初のステートメントsuper()の後にコンストラクタのインスタンスイニシャライザブロックをコピーするのですか?
答えて
そうでなければ、親のフィールドがであるかの状態見当がつかない。これはsuper()
は、他のすべての前に行かなければならないことを意味します。
スーパークラスの継承はありません。
Object
には親がありません。他のすべてのクラスには、親があり、最終的にはObject
から継承されます。
私はそれを持って..私はJavaの初心者です。だから、私はオブジェクトクラスについて知らない。今私はそれを得た。ご回答有難うございます。 オブジェクトクラスについても説明します** Objectクラスは、java bydefaultのすべてのクラスの親クラスです。言い換えれば、javaの最上位クラスです。** –
@rajatagarwal correct。オブジェクトは親を持たない唯一のクラスです。 –
あなたは私に完全なJavaを学ばなければならないいくつかの参考文献を教えてください。 –
- 1. Javaは:なぜ私は、コンストラクタの最初の行にsuper()を記述する必要があり
- 2. は、コンパイラがsuper()を挿入します。両方の動物のコンストラクタのステートメント?
- 3. Javaコンストラクタのthisとsuperキーワード
- 4. super()を使ったコンストラクタの初期化
- 5. なぜ子クラスのコンストラクタで 'super()'を呼び出すのですか?
- 6. ステートメントの最後にJavaがダブルセミコロンのエラーを表示しないのはなぜですか?
- 7. コンストラクタのコンパイラの最適化
- 8. コンストラクタのsuper()
- 9. なぜ#includeディレクティブにステートメントの最後にセミコロンがないのですか?
- 10. 最初のクリック後にJQueryダイアログボックスが移動するのはなぜですか?
- 11. クリックイベントリスナーが最初のクリック後に中断するのはなぜですか?
- 12. C++:なぜ、常に最後のパラメータを最初に行うのですか?
- 13. ランダムボタンゲームは、最初のクリック後に瑕疵があるのはなぜですか?
- 14. Javaのコンストラクタの前に最終変数を初期化する
- 15. super-deallocを最後に呼び出さなければならないのはなぜですか?
- 16. コンストラクタの初期化リストをコピーする
- 17. this()とsuper()の両方をコンストラクタで一緒に使用できないのはなぜですか?
- 18. JavaがForステートメントをスキップするのはなぜですか?
- 19. Javaコンストラクタを同期できないのはなぜですか?
- 20. なぜ最初と最後に使用できないのですか?
- 21. Pythonのsuper()引数:なぜsuper(obj)ですか?
- 22. configparserコンストラクタでsuper()を使用できないのはなぜですか? Pythonの3で
- 23. なぜZeroClipboardは最初の単語のみをコピーしますか?
- 24. 最初のclojureコンパイラ?
- 25. Traceback(最後の最後のコール)を取得するのはなぜですか:
- 26. Reactコンストラクタでsuper()を呼び出すのは何ですか?
- 27. カスタムクラスのこのコンストラクタはなぜ大括弧内に 'super'を持つのですか?
- 28. Java:子クラスのコンストラクタのsuper()はどのようにしてインスタンスフローに参加するのですか?
- 29. 「super」がNSObjectの場合、なぜ[super init]がnilを返すのですか?
- 30. 変数がtrueのときにJavaScriptがDOMステートメントを最後に実行するのはなぜですか?
* "私は親クラスを継承しません" *これは 'Object'を拡張します。 – Tom
あなたは私のことを理解していません。クラスの継承はありませんので、super()がどこを指していますか? –
@rajatagarwal **これは決して可能ではありません。 'class'が親を' extend'しない場合、コンパイラは 'extends Object'を追加します。 –