サブクラス コンストラクターにおける super() の必要性を理解する
Java でサブクラスを作成する場合、super() がサブクラスのコンストラクターではメソッド呼び出しが必須です。この記事では、このトピックを詳しく掘り下げ、次の側面について明確に説明します。
コンパイラーによる super() の自動挿入
この質問に対する簡単な答えは「いいえ」です。明示的に指定されていない場合、コンパイラはサブクラスのコンストラクターに super() 呼び出しを自動的に挿入しません。したがって、サブクラス コンストラクターは、呼び出すスーパークラス コンストラクターを常に指定する必要があります。
引数なしのコンストラクターに相当するものが存在しない
サブクラス コンストラクターでの super() 呼び出しは、コンパイラーが引数なしで同等のコンストラクターを挿入することを意味するものではありません。スーパークラスにアクセス可能な引数なしのコンストラクターがない場合、super() 呼び出しを省略するとコンパイル エラーが発生します。
引数が存在する場合のコンストラクター呼び出し
引数を持つサブクラス コンストラクターを考えてみましょう。この場合、呼び出すスーパークラス コンストラクターを指定するには、super() 呼び出しが必要です。呼び出されるスーパークラスのコンストラクターは、主にサブクラスのコンストラクターに渡される実際の引数によって決まります。 super() 呼び出しで引数リストが指定されていない場合、サブクラスの構築引数の順序と型に一致するスーパークラス コンストラクターが呼び出されます。
以上がサブクラス コンストラクターでは `super()` は必須ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。