「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > サブクラス コンストラクターでは `super()` は必須ですか?

サブクラス コンストラクターでは `super()` は必須ですか?

2024 年 11 月 8 日に公開
ブラウズ:245

Is `super()` Mandatory in Subclass Constructors?

サブクラス コンストラクターにおける super() の必要性を理解する

Java でサブクラスを作成する場合、super() がサブクラスのコンストラクターではメソッド呼び出しが必須です。この記事では、このトピックを詳しく掘り下げ、次の側面を明確にします。

コンパイラによる super() の自動挿入

この質問に対する簡単な答えは「いいえ」です。明示的に指定されていない場合、コンパイラはサブクラスのコンストラクターに super() 呼び出しを自動的に挿入しません。したがって、サブクラス コンストラクターは、呼び出すスーパークラス コンストラクターを常に指定する必要があります。

引数なしのコンストラクターに相当するものが存在しない

サブクラス コンストラクターでの super() 呼び出しは、コンパイラーが引数なしで同等のコンストラクターを挿入することを意味するものではありません。スーパークラスにアクセス可能な引数なしのコンストラクターがない場合、super() 呼び出しを省略するとコンパイル エラーが発生します。

引数が存在する場合のコンストラクター呼び出し

引数を持つサブクラス コンストラクターを考えてみましょう。この場合、呼び出すスーパークラス コンストラクターを指定するには、super() 呼び出しが必要です。呼び出されるスーパークラスのコンストラクターは、主にサブクラスのコンストラクターに渡される実際の引数によって決まります。 super() 呼び出しで引数リストが指定されていない場合、サブクラスの構築引数の順序と型に一致するスーパークラス コンストラクターが呼び出されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3