noo*_*ook 2 java inheritance instance-variables hierarchy
如果我有以下情况:
public class Foo extends Baz{
private String banana = "banana";
//blah blah blah
}
public class Baz{
protected static String apple = "apple";
}
Run Code Online (Sandbox Code Playgroud)
哪个先创建,苹果还是香蕉?我想说苹果首先被创造,但我不确定.
apple
首先创建.它是静态的,并且在父级别类中.
静态初始化程序(初始化apple
变量)将在Baz
加载类时立即运行,这必须在Baz
可以创建实例之前发生.
banana
一旦Foo
创建了一个实例,intsance初始化器(初始化变量)就会运行.