创建派生类对象时,构造函数的执行顺序

时间:2019-03-19
本文章向大家介绍创建派生类对象时,构造函数的执行顺序,主要包括创建派生类对象时,构造函数的执行顺序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

父类的静态变量赋值---》父类的静态代码块---》子类的静态变量赋值--》子类的静态代码块--》父类的非静态变量赋值--》父类的非静态代码块--》父类的构造函数--》子类的非静态变量赋值--》子类的非静态代码块--》子类的构造函数。

public class Test5 {

    public static void main(String[] args) {
        Cat cat = new Cat();

    }

}
class Animal{
    public static String name="父类";
    public String sex = "雄性";
    static {
        System.out.println("我是父类的静态代码块,现在静态变量已被赋值为:"+name);
    }
    {
        System.out.println("我是父类的非静态代码块,现在非静态变量已经被赋值为:"+sex);
    }
    public Animal() {
        System.out.println("我是父类的构造函数");
    }
}
class Cat extends Animal{
    public static  String s_name = "子类";
    public String  age = "17岁";
    static {
        System.out.println("我是子类的静态代码块,现在我的静态变量已经被赋值为:"+s_name);
        
    }
    {
        System.out.println("我是子类的非静态代码块,现在我的非静态变量已被赋值为:"+age);
    }
    public Cat() {
        System.out.println("我是子类的的构造函数");
    }
}

运行结果;