情報-Java基礎:親子クラスのロード処理

ロード順

まず結論を果たします。

コードの静的プロパティ(メンバ変数)>親クラス静的ブロック親>サブクラス静的プロパティ>コードのサブクラス静的ブロック>親非静的プロパティ>コードの親クラスの非静的ブロック>親クラスのコンストラクタ>サブクラス非静的プロパティ>サブクラスは、非静的>サブクラスのコンストラクタをブロック

だから、どのくらいあなたはそれを覚えていますか?

ここでは概要次の特性を助けるために:

  1. 静的プロパティとコードブロック、IFおよび新しいクラスが初めてプログラムであるか、またはコールをロードする最初のクラスは、(永久回復の世代にかかわらず)でトリガする場合にのみ。正確にこれらの理由から、クラスは/新しいロードされているオブジェクトよりも優先され、それは非静的に優先して静的です。
  2. 属性(メンバ変数)工法よりも優先、理解することができる、このクラス全体がロードされている、あなたは、クラスのプロパティを持っているかを知る必要があり、初期化が完了し、これらのプロパティの後に、このクラスのオブジェクトが完了したと見なされます。加えて、1つの非静的コードブロックは、新しいオブジェクトの準備は、実際には、コンストラクタは、任意の外部パラメータを受け付けないこと。そのため、属性>非静的ブロック>コンストラクタ。
  3. 興味深いことに、(最初の4つ)の静的部分(6後)親クラス>のサブクラスではなく、静的部分は、親クラス>サブクラスです。
  4. また、それぞれの新しいオブジェクトのコードの非静的ブロックが実行されることを見落とすこと、それは簡単に理解することができる:非静的コードブロックは、公式のコンストラクタの前に(コード>コンストラクタの非静的ブロック)を動作するように準備ができています。
1  / ** 
2  * @author Lean.Li
 3  * @date 2018年10月15日
 4   * / 
5  パブリック クラスメイン{
 6  
7      静的 クラスA {
 8          静的こんにちはHI = 新しいハイ( "A" )。
9  
10          こんにちはHI2 = こんにちは( "A2" );
11  
12          静的{
 13              のSystem.out.println( "静的" )。
14          }
 15  
16          {
 17             System.out.println( "AAA" )。
18          }
 19  
20          パブリックA(){
 21              のSystem.out.println( "INIT" )。
22          }
 23      }
 24  
25  
26      静的 クラス Bは延び{
 27          静的こんにちはHI = 新しいハイ( "B"を)。
28  
29          こんにちはHI2 = こんにちは( "B2" );
30  
31          静的{
 32              のSystem.out.println( "静的B" )。
33         }
 34  
35          {
 36              のSystem.out.println( "BBB" )。
37          }
 38  
39          公衆B(){
 40              のSystem.out.println( "Bの初期化" )。
41          }
 42      }
 43の 
44      静的 クラスこんにちは{
 45          公共のHi(文字列str){
 46              のSystem.out.println( "こんにちは" + STR)。
47          }
 48      }
 49  
50      公共 静的 ボイドメイン(文字列[]引数){
51である          のSystem.out.println( "最初の新しい新B:" );
 52である          B = B 新しい新; B()
 53である         のSystem.out.println();
 54である          のSystem.out.println( "B 2番目の新しい新しいです:" )。
 55          B = 新しい新B();
 56である     }
 57は、 
58 }

結果は以下の通りであります:

初次新しいB:
こんにちは静的
こんにちはB 
B 静的
こんにちはA2 
AAA 
Aのinit 
こんにちはB2 
BBB 
Bのinit 

第二次の新しいB:
こんにちはA2 
AAA 
Aのinit 
こんにちはB2 
BBB 
Bのinit

 

おすすめ

転載: www.cnblogs.com/Carrol/p/11541626.html