类初始化时静态代码块的加载
Posted 飞奔的菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类初始化时静态代码块的加载相关的知识,希望对你有一定的参考价值。
class superclass{
static {
System.out.println("superclass init");
}
public static int value = 123;
}
class subclass extends superclass{
static {
System.out.println("subclass init");
}
}
class outputrestult{
public static void main(String[] args){
System.out.println(subclass.value);
//这里只会输出superclass init 和123,而不会输出subclass init
//对于静态字段,只有直接定义这个字段的类才会被初始化,因此通过其子类来引用
//父类中定义的静态字段,只会触发父类的初始化字段而不会触发子类的初始化
}
}
以上是关于类初始化时静态代码块的加载的主要内容,如果未能解决你的问题,请参考以下文章