class M
{
public M()
{
System.out.println('C');
}
static
{
System.out.println('A');
}
{
System.out.println('B');
}
}
class N extends M
{
static
{
System.out.println('D');
}
{
System.out.println('E');
}
public N()
{
System.out.println('F');
}
}
public class Main
{
public static void main(String[] args)
{
N n = new N();
}
}
有人可以在这段代码中解释执行流程吗?我知道该调用首先到达了超类构造函数,然后到达了子类,但是我不明白这里执行的打印语句的顺序。我看到的输出是按ADBCE F的顺序排列的。在超类的构造函数之前?