この記事では、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 サイトの他の関連記事を参照してください。