コンストラクション関数、静的文ブロック、非静的文ブロックの実行順序
1373 ワード
1テスト用の親
2.テストに使用するサブクラス
3.試験方法類
出力結果:私は親クラスの静的文ブロックです.サブクラスの静的文ブロック!私は親クラスの非静的文ブロックです.私はパラメータなしで構築され、親クラスのサブクラスの非静的文ブロックです.私はサブクラスの無パラメータ構造です!
テスト結果:親の静的文ブロック>子の静的文ブロック>親の非静的文ブロック>親の構築>子の非静的文ブロック>子の構築の順序:1.静的文ブロックの優先度が最も高く、親が子より高い. 2.非静的文ブロックは、構築の前に実行され、親クラスの実行中の子クラスの
public class testFather {
public testFather(){
System.out.println(" , ");
}
public testFather(String a){
System.out.println(" , , "+a);
}
//
{
System.out.println(" !");
}
//
static{
System.out.println(" !");
}
}
2.テストに使用するサブクラス
public class testSon extends testFather{
public testSon(){
System.out.println(" !");
}
public testSon(String a){
System.out.println(" , "+a);
}
//
{
System.out.println(" !");
}
//
static{
System.out.println(" !");
}
}
3.試験方法類
public class testOrder {
public static void main(String[] args) {
new testSon();
// new testSon("a");
}
}
出力結果:私は親クラスの静的文ブロックです.サブクラスの静的文ブロック!私は親クラスの非静的文ブロックです.私はパラメータなしで構築され、親クラスのサブクラスの非静的文ブロックです.私はサブクラスの無パラメータ構造です!
テスト結果:親の静的文ブロック>子の静的文ブロック>親の非静的文ブロック>親の構築>子の非静的文ブロック>子の構築の順序:1.静的文ブロックの優先度が最も高く、親が子より高い. 2.非静的文ブロックは、構築の前に実行され、親クラスの実行中の子クラスの