パッケージcom.ocr。 クラスA { 静的{ するSystem.out.println( "静的INIT A" )。 } { のSystem.out.println( "インスタンスINIT A" )。 } A(){ System.out.printlnは( "コンストラクターA." )。 } } クラス Bは延びA { 静的{ するSystem.out.println( "B. INIT静的" )。 } { のSystem.out.println( "インスタンスINIT B" )。 } B(){ System.out.println(「コンストラクタB」)。 } } クラス Cは延びB { 静的{ するSystem.out.println( "C. INIT静的" )。 } { のSystem.out.println( "インスタンスINIT C" )。 } C(){ System.out.printlnは( "コンストラクタC" )。 } } パブリック クラスメイン{ 静的{ するSystem.out.println( "静的メインを初期化。" ); } { System.out.printlnは(「インスタンスは、メインを初期化。」); } 公共のmain(){ System.out.printlnは( "コンストラクタメイン。" )。 } パブリック 静的 ボイドメイン(文字列[]引数){ C、C = 新しいC(); // B B =新しいB(); } }
結果
静的には、メインを初期化。
静的初期化A.
静的B. initの
静的は、C initの
インスタンスA. initの
コンストラクタA.
インスタンスB. initの
コンストラクタB.
インスタンスC. initの
コンストラクタをC.
結論:コード実行のブロックがあると言うことに優先してコードの静的ブロック、およびトップ親から実行
シーケンス:>コードのサブクラス静的ブロック - - >親クラスのコンストラクタのコードブロック - - >親クラスのコンストラクタ構成>サブクラスコードブロックコンストラクタ>サブクラス - コードの親クラスの静的ブロック