作者:✿✿ 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();
}
}
在此代码中:
父类的实例化——》父类的构造函数——》子类的实例化——》子类的构造函数