分析深度の類似性とクラス間の相違とのインターフェースのための初期化

親クラスのすべてにそれを求めて、クラスを初期化するには、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、メイン]

  

おすすめ

転載: www.cnblogs.com/linlf03/p/10990981.html