java对象初始化的顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java对象初始化的顺序相关的知识,希望对你有一定的参考价值。
Java代码
public class Son extends Father {
String value = null;//2
public Son() {
super(); //1
System.out.println("Son: " + value);//3
}
public static void main(final String[] args) {
new Son();
}
}
class Father {
public Father() {
if (this instanceof Son) {
Son lower = (Son) this;
lower.value = "test";
}
}
}
class Father {
public Father() {
if (this instanceof Son) {
Son lower = (Son) this;
lower.value = "test";
}
}
}
这个的结果是 null
步骤1 设置为test
步骤2 设置为null
步骤3 打印出来null
如果 不是 String value = null ; 只是 String value; 下载
步骤1 设置为test
步骤2 不做任何事情,因为已经有值了,不用设置为默认的null值了
步骤3 打印出来null
所以 一个字段不设置值 和 设置为null 是有区别的。
以上是关于java对象初始化的顺序的主要内容,如果未能解决你的问题,请参考以下文章