Initialization of a class consists of executing its static initializers and the initializers for static
fields (class variables) declared in the class. Initialization of an
interface consists of executing the initializers for fields (constants) declared there.
Before a class is initialized, its superclass must be initialized, but interfaces implemented by the class need not be initialized. Similarly, the superinterfaces of an interface need not be initialized before the interface is initialized.