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. Итак, сначала вызываются статические методыперед конструктором в суперклассе?