ホームページ  >  記事  >  Java  >  サブクラス コンストラクターでは `super()` は必須ですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 22:23:30607ブラウズ

Is `super()` Mandatory in Subclass Constructors?

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

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

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

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

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

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

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

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

以上がサブクラス コンストラクターでは `super()` は必須ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。