Javaのコンストラクターは非常に重要な役割です。まず第一に、Javaのコンストラクターは過負荷になる可能性があります。また、親クラスのコンストラクターからも継承できるため、サブクラスでは、最初のことは親クラスのコンストラクターを呼び出すことです。次の2つの例と比較できます。
public class test {public static void main(string args []){b b = new b(100); }} class a {public a(){system.out.println( "パラメーターなし" a "); } public a(int i){system.out.println( "a with a parameter"); }} class bはa {public b(){system.out.println( "bパラメーターなし"); } public b(int i){system.out.println( "b with a parameter"); }}この例の最終出力は次のとおりです
パラメーターなし
パラメーター付きB
あなたが最初に呼ぶものは親クラスのコンストラクターであり、次に独自のコンストラクターが呼ばれていることがわかります。ただし、クラスBにパラメーターを持つコンストラクターにはスーパー親クラスがないため、親クラスのパラメーターなしにコンストラクターのみを実行します。パラメーターを使用して親クラスのコンストラクターを実行したい場合は、次のようなコードを記述する必要があります。
public class test {public static void main(string args []){b b = new b(100); }} class a {public a(){system.out.println( "パラメーターなし" a "); } public a(int i){system.out.println( "a with a parameter"); }} class bはa {public b(){system.out.println( "bパラメーターなし"); } public b(int i){super(i); //これはパラメーターコンストラクターSystem.out.println( "bパラメーター" b); }}したがって、最終出力は次のとおりです。
パラメーター付きA
パラメーター付きB
したがって、派生クラスは、親クラスのパラメーターを含むコンストラクターを呼び出すためにスーパーを使用する必要があります。これが別の質問です:
パブリッククラステストはx {y y = new y(); test(){system.out.print( "z"); } public static void main(string args []){new test(); }} class x {y b = new y(); x(){system.out.print( "x"); }} class y {y(){system.out.print( "y"); }}出力の結果は何ですか?
まず、この質問を分析しましょう。
まずこのメイン関数を見るため、このメイン関数には1つのコードのみがあります。新しいテスト()。このテストクラスがXから継承することがわかったため、最初にxを構築する必要があるため、xクラスy b = new y()を実行し、出力yを確認してから、xクラスxのコンストラクターと出力xを実行できます。次に、yを構築し、テスト独自のコンストラクターである出力zを実行するため、出力の結果はyxyzになります。
Javaのコンストラクターに関するいくつかの知識の上記の詳細な説明は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。