直接上速记卡

特别注意:
当有继承关系时,执行顺序为
父类静态代码块>子类静态代码块 >父类构造代码块>父类空构造>子类构造代码块>子类空构造
主要针对这个顺序,我们简单撸一个Code
package Block;
public class Fu {
static int i;
int j;
static {
i = 15;
int i = 11;
System.out.println("父类静态Block");
}
{
int c = 1;
j = 15;
System.out.println("父类构造Block");
}
public Fu() {
System.out.println("父类构造器");
// TODO Auto-generated constructor stub
}
}
package Block;
public class Son extends Fu {
static int r;
int t;
static {
r = 15;
System.out.println("子类静态Block");
}
{
t = 13;
System.out.println("子类构造Block");
}
public Son() {
System.out.println("子类构造器");
}
public static void main(String[] args) {
Son son = new Son();
System.out.println("静态属性" + son.r + "成员属性" + son.t);
}
}
执行结果
父类静态Block
子类静态Block
父类构造Block
父类构造器
子类构造Block
子类构造器
静态属性15成员属性13
End!

本文通过一个具体的Java代码示例,详细解析了当存在继承关系时,父类与子类的静态代码块、构造代码块及构造器的执行顺序。演示了如何通过打印语句观察这些代码块的执行流程。

被折叠的 条评论
为什么被折叠?



