ホームページ > Java > &#&チュートリアル > Java継承関係にあるコンストラクタメソッドが実装メソッドを呼び出す

Java継承関係にあるコンストラクタメソッドが実装メソッドを呼び出す

黄舟
リリース: 2017-10-14 09:36:32
オリジナル
1375 人が閲覧しました

この記事では、Java の継承関係の詳細な説明の下で、構築メソッド呼び出しに関する関連情報を主に紹介します。この記事が、この部分の内容を理解して習得するのに役立つことを願っています。

Javaの継承関係の詳しい説明 コンストラクタメソッドの呼び出し

Javaでクラスのオブジェクトを作成するとき、そのクラスに親クラスがある場合、最初に親クラスのコンストラクタメソッドが呼び出され、次にサブクラスのコンストラクタメソッドが呼び出されます。と呼ばれます。親クラスでコンストラクターが定義されていない場合は、コンパイラーによって自動的に作成されたパラメーターのないデフォルトのコンストラクターが呼び出されます。親クラスがパラメーターのないパブリック コンストラクターを定義している場合、パラメーターのないコンストラクターは、子クラスのコンストラクターを呼び出す前に自動的に呼び出されます。親クラスにパラメーター化されたコンストラクターのみがあり、パラメーターなしのコンストラクターがない場合、サブクラスはコンストラクター内で明示的に super (パラメーター リスト) を呼び出して、パラメーター化されたコンストラクターを指定する必要があります。親クラスがパラメーターなしのコンストラクターを定義しているが、パラメーターなしのコンストラクターがプライベートとして宣言されている場合、サブクラスもコンストラクター内で明示的に super (パラメーター リスト) を呼び出して、パラメーター化されたコンストラクターを指定する必要があります。親クラスに他のパラメーター化されたコンストラクターがない場合、サブクラスは作成できません。

親クラスがあります

サブクラス
引数のないパブリックコンストラクター 引数のないプライベートコンストラクター Priv引数のないコンストラクターを食べました
なし なし なし すべてのコンストラクターは親クラスのデフォルトのコンストラクターを呼び出します
はい なし なし すべてのコンストラクターは定義された引数なしのコンストラクターを呼び出します
なし なし はい すべてのコンストラクターは、パラメーターを使用してコンストラクターを呼び出すか、これを通じて他のコンストラクターを呼び出すかを指定する必要があります。
はい いいえ はい 特定のコンストラクターを呼び出すように指定できます。指定されていない場合は、パラメーターなしのコンストラクターが呼び出されます。
なし はい なし サブクラスは構築できません (親クラスはサブクラスを派生できません)
なし はい はい パラメータを呼び出すには、すべてのコンストラクタを指定する必要があります。 、またはこれを通じて他のコンストラクターを呼び出します。

例:


class Parent {
  private String pString;
  Parent(){
    pString = "p1";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    cString = "c1";
  }
}
ログイン後にコピー

Child オブジェクトが作成されると、親クラス Parent のコンストラクターが最初に呼び出され、pString を "p1" に初期化してから、Child のコンストラクターが呼び出されます。 cString を "c1" に初期化します。


class Parent {
  private String pString;
  private Parent(){
    pString = "p1";
  }
  Parent(String s){
    pString = "p2";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    super("");
    cString = "c1";
  }
}
ログイン後にコピー

親クラスはパラメーターなしのプライベートコンストラクターを定義しているため、サブクラス内のパラメーターを使用して特定のコンストラクターを呼び出すように明示的に指定する必要があります。

以上がJava継承関係にあるコンストラクタメソッドが実装メソッドを呼び出すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート