親クラスのすべてにそれを求めて、クラスを初期化するには、Java仮想マシンが初期化されているが、このルールは、適切なインタフェースではない場合
1)場合クラスが初期化され、それが実装するクラスのインターフェイスを初期化することはできません。
2)インタフェースを初期化し、そしてその親インターフェイスを初期化されない場合には
このように、親インターフェイスおよびサブインターフェイスは、それがクラスの初期化または初期化を実装していないため。場合にのみ、レンズの変数特定のインターフェイスを使用して、初めてのプログラムは、インターフェイスの初期化が発生します。
クラスが初期化され、およびインタフェースが初期化されないときには、クラスの実装サンプルを
パブリッククラスMyTest5 { パブリック静的無効メイン(文字列[] args){ のSystem.out.println(MyChild5.b)。 } } インターフェイスMyParent5 { パブリック静的スレッドスレッド=新しいスレッド(){ { //实例化代码块 のSystem.out.printlnは( "MyParent 5が起動")。 } }。 } クラスMyChild5はMyParent5 {実装 パブリック静的INTを、B = 6。 }
印刷結果
6
アクセスインターフェイスは、クラスを変更する場合
パブリッククラスMyTest5 { パブリック静的無効メイン(文字列[] args){ のSystem.out.println(MyChild5.b)。 } } クラスMyParent5 { パブリック静的スレッドスレッド=新しいスレッド(){ { //实例化代码块 のSystem.out.println( "MyParent 5が起動")。 } }。 } クラスMyChild5はMyParent5 {延び パブリック静的INTを、B = 6。 }
これは、プリントアウトされます
MyParent 5は、この文を呼び出しました。
初期化インターフェースで、それはその親インターフェイスを初期化されることはありません
パブリッククラスMyTest5 { パブリック静的無効メイン(文字列[] args){ のSystem.out.println(MyParent5_1.thread)。 } } インターフェイスMyGrandpa5_1 { パブリック静的スレッドスレッド=新しいスレッド(){ { //实例化代码块 のSystem.out.println( "MyGrandpa5_1が呼び出さ")。 } }。 } インターフェイスMyParent5_1 { パブリック静的スレッドスレッド=新しいスレッド(){ { //实例化代码块 のSystem.out.println( "MyParent5_1が呼び出さ")。 } }。 }
印刷結果
MyParent5_1は、呼び出された スレッドを[スレッド0,5、メイン]