要在构造方法中调用父类或者自身的构造方法:调用构造方法的代码应该放在第一条语句
java 初始化顺序:
静态成员变量>静态初始化块>普通成员变量>普通的初始化块>构造方法(自动初始化时机在调用任何方法之前(构造方法,成员方法))
public class ExtendDemo {
public static void main(String[] args){
new Zi();
}
}
class Fu{
static {
System.out.println("父类的静态代码块");
}
{
System.out.println("父类的普通代码块");
}
Fu(){
System.out.println("父类的构造方法");
}
}
class Zi extends Fu{
static {
System.out.println("子类的静态代码块");
}
{
System.out.println("子类的普通代码块");
}
Zi(){
//Fu();即便自己没有显式的调用,编译器也会帮你调用父类的无参构造,所以有没有这行代码效果一样
System.out.println("子类的构造方法");
}
}
运行结果: