Java virtual machine class load order

Java virtual machine to load class, initialize the parent class static variable, then initialize the subclass static variables, and then load the parent class, and finally loaded subclass


public class Parent {

static{
System.out.println("static parent");
}

public Parent(){
System.out.println("parent loaded");
}

public void getaaa(){
System.out.println("parent aaa");
}
}




public class Child extends Parent{

public Child(){
System.out.println("child load");
}

public void getaaa(){
System.out.println("child aaa");
}

static{
System.out.println("static child");
}

public static void main(String[] args){
Child child = new Child();
child.getaaa();
}
}

Results:

static parent
static child
parent loaded
child load
child aaa



Published 34 original articles · won praise 2 · views 40000 +

Guess you like

Origin blog.csdn.net/zjj2006/article/details/38519037