之前对构造函数的调用顺序一直很迷,只知道很死板地记着“父类构造函数先于子类构造函数调用”,但是其中的原因并没有去深究。前几周大概看了一遍JAVA编程思想,真的是博大精深…但是对这个概念起码有了一点自己的看法。欢迎指正哦~
class Fu{
}
class Zi extends Fu{
}
public class Demo1 {
public static void main(String[] args) {
Fu fu = new Fu();
Zi zi = new Zi();
}
}
上面这段代码是可以运行起来的,虽然它没有任何实际的用处。但是,我们应该能想到,编译器为我们做了一些事情,首先,类是一定会有构造方法的。如果你没写,编译器就会自动创建一个默认构造方法。默认构造方法不带任何参数,也没有方法的实体。
修改一下代码,在子类中写一个无参构造方法。