ホームページ  >  記事  >  Java  >  Javaでのsuper()は何を意味しますか

Javaでのsuper()は何を意味しますか

下次还敢
下次还敢オリジナル
2024-04-27 00:15:251056ブラウズ

super() キーワードは、Java サブクラス コンストラクターで親クラスのコンストラクターを呼び出し、親クラスのインスタンス変数が正しく初期化されていることを確認するために使用されます。構文は super() (パラメーターなし) または super です。 (パラメーター)。

Javaでのsuper()は何を意味しますか

super(): Java での親クラスのコンストラクター呼び出し

Java では、super ( ) キーワードは、親クラスのコンストラクターを呼び出すために使用されます。これはサブクラス コンストラクターの最初のステートメントであり、親クラスのインスタンス変数を初期化する役割を果たします。

なぜ親クラスのコンストラクターを呼び出す必要があるのでしょうか?

サブクラスがインスタンス化されると、Java は最初に親クラスのコンストラクターを呼び出します。これにより、親クラスのインスタンス変数が正しく初期化されることが保証されます。子クラスが親クラスのコンストラクターを明示的に呼び出さない場合、Java は自動的に引数なしのコンストラクターを呼び出します。ただし、呼び出されるコンストラクターを明確に指定し、予期しない動作を回避できるため、親クラスのコンストラクターを明示的に呼び出すことをお勧めします。

構文:

super() キーワードはパラメータ付きまたはパラメータなしで使用できます:

  • パラメーターなし: 親クラスのパラメーターなしのコンストラクターを呼び出します。
  • パラメータを使用する場合: 親クラスのパラメータ化されたコンストラクタを呼び出します。パラメータは親クラスのコンストラクタのパラメータに対応します。

例:

<code class="java">// 父类 Animal
class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }
}

// 子类 Dog
class Dog extends Animal {
    private int age;

    public Dog(String name, int age) {
        // 调用父类的带参构造函数
        super(name);
        this.age = age;
    }
}</code>

上の例では、super(name )、これは name を渡します。パラメータを親クラス Animal のパラメータ化されたコンストラクタに追加します。これにより、Animal クラスの name インスタンス変数が正しく初期化されます。

注:

    super()
  • は、サブクラス コンストラクターの最初のステートメントである必要があります。 親クラスにパラメーターなしのコンストラクターがない場合、サブクラスは親クラスのパラメーター化されたコンストラクターを明示的に呼び出す必要があります。
  • サブクラスのコンストラクターが親クラスのコンストラクターを呼び出さない場合、Java は自動的に親クラスの引数なしのコンストラクターを呼び出します。

以上がJavaでのsuper()は何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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