【总结篇】继承中的执行顺序

2023-04-16 17:36:25 浏览数 (1)

作者:✿✿ xxxflower. ✿✿ 《总结篇》 这个专题就记录一些自己在练习中所学习到的。 包括一些不熟悉的芝士点和一些小的细节。

今天我们来总结一下继承中的执行顺序。

首先执行静态的(父类静态对象,父类静态代码块,子类静态对象,子类静态代码块) 其次执行实例化 最后执行构造(父类构造函数,子类构造函数)

首先,我们来看一个代码:

代码语言:javascript复制
class BB{
    CC c1 = new CC();
    public BB(){
        System.out.println("BB(父类)::构造函数");
    }
    public void funcBB(){
        System.out.println("func::函数");
    }
}
class CC{
    public CC(){
        System.out.println("CC::构造函数");
    }
}
public class AA extends BB{
    CC c2 = new CC();

    public AA(){
        super();//隐藏的,不写不代表没有
        System.out.println("AA(子类)::构造函数");
    }
    public void funcAA(){
        System.out.println("func::AA");
    }

    public static void main(String[] args) {
        System.out.println("start");
        AA aa = new AA();
    }
}

在此代码中:

父类的实例化——》父类的构造函数——》子类的实例化——》子类的构造函数

0 人点赞