Java初始化顺序

package org.onepiece;
public class Base {
    private PrintMessage p1 = new PrintMessage("1父类_变量");
    private static PrintMessage p2 = new PrintMessage("1父类_静态_变量");
    private static final PrintMessage p3 = new PrintMessage("1父类_静态_final_变量");

    public Base(){
        System.out.println("1父类_构造函数");
    }

    static{
        System.out.println("1父类_静态_构造函数");
    }
}


package org.onepiece;
public class Animal extends Base {

    private PrintMessage p1 = new PrintMessage("2子类_变量");
    private static PrintMessage p2 = new PrintMessage("2子类_静态_变量");
    private static final PrintMessage p3 = new PrintMessage("2子类_静态_final_变量");

    public Animal(){
        System.out.println("2子类_构造函数");
    }

    static{
        System.out.println("2子类_静态_构造函数");
    }
}


package org.onepiece;
public class Dog extends Animal {
    private PrintMessage p1 = new PrintMessage("3子子类_变量");
    private static PrintMessage p2 = new PrintMessage("3子子类_静态_变量");
    private static final PrintMessage p3 = new PrintMessage("3子子类_静态_final_变量");

    public Dog(){
        System.out.println("3子子类_构造函数");
    }

    static{
        System.out.println("3子子类_静态_构造函数");
    }
}



package org.onepiece;
public class PrintMessage {

    public PrintMessage(String str){
        System.out.println(str);
    }
}

 

public static void main(String[] args) throws Exception
{
    Base b1 = new org.onepiece.Base();
}
/* 1父类_静态_变量 1父类_静态_final_变量 1父类_静态_构造函数 1父类_变量 1父类_构造函数 */

 

public static void main(String[] args) throws Exception
{
    Base b2 = new org.onepiece.Animal();
}

/*
1父类_静态_变量
1父类_静态_final_变量
1父类_静态_构造函数

2子类_静态_变量
2子类_静态_final_变量
2子类_静态_构造函数

1父类_变量 1父类_构造函数
2子类_变量 2子类_构造函数
*/

 

public static void main(String[] args) throws Exception
{
    Base b3 = new org.onepiece.Dog();
}

/*
1父类_静态_变量
1父类_静态_final_变量
1父类_静态_构造函数

2子类_静态_变量
2子类_静态_final_变量
2子类_静态_构造函数

3子子类_静态_变量
3子子类_静态_final_变量
3子子类_静态_构造函数

1父类_变量 1父类_构造函数
2子类_变量 2子类_构造函数
3子子类_变量 3子子类_构造函数
*/

 

public static void main(String[] args) throws Exception
{
    Animal a1 = new Animal();
}

/*
1父类_静态_变量
1父类_静态_final_变量
1父类_静态_构造函数

2子类_静态_变量
2子类_静态_final_变量
2子类_静态_构造函数

1父类_变量 1父类_构造函数
2子类_变量 2子类_构造函数
*/

 

public static void main(String[] args) throws Exception
{
    Animal a2 = new org.onepiece.Dog();
}

/*
1父类_静态_变量
1父类_静态_final_变量
1父类_静态_构造函数

2子类_静态_变量
2子类_静态_final_变量
2子类_静态_构造函数

3子子类_静态_变量
3子子类_静态_final_变量
3子子类_静态_构造函数

1父类_变量 1父类_构造函数
2子类_变量 2子类_构造函数
3子子类_变量 3子子类_构造函数
*/

 

public static void main(String[] args) throws Exception
{
    Dog dog = new org.onepiece.Dog();
}

/*
1父类_静态_变量
1父类_静态_final_变量
1父类_静态_构造函数

2子类_静态_变量
2子类_静态_final_变量
2子类_静态_构造函数

3子子类_静态_变量
3子子类_静态_final_变量
3子子类_静态_构造函数

1父类_变量 1父类_构造函数
2子类_变量 2子类_构造函数
3子子类_变量 3子子类_构造函数
*/

 

posted @ 2018-07-15 02:10  茗::流  阅读(95)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。