本文主要说明在继承类中创建子类对象时的执行顺序
运行加载 ----> 父类静态代码块 ----> 子类静态代码块 ----> main方法(在main方法中创建子类对象) ----> mian方法中按照顺序执行(直到创建子类对象) ----> 父类构造代码块 ----> 父类构造方法 ----> 子类构造代码块 ----> 子类构造方法
注意事项:静态代码块只会创建一次,唯一地址,其余非静态随着多次创建对象而多次创建
子类构造方法中第一行默认super(),要调用父类有参请在子类构造重写super(参数)
关于直接创建父类对象没什么好写的,正常执行就是
附上代码:
public class Zu extends Fu {
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类构造代码块");
}
public Zu(){
System.out.println("子类空参数构造方法");
}
public Zu(int a){
super(a);
System.out.println("子类参数构造方法111...........");
}
public static void main(String[] args) {
System.out.println("main方法");
Zu Zu = new Zu();
Zu Zu1 = new Zu(10);
}
}
class Fu {
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类构造代码块");
}
public Fu(){
System.out.println("父类空参数构造方法");
}
public Fu(int a){
System.out.println("父类带参数构造方法...........");
}
}