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 是有区别的。
