子类字段不会覆盖超类字段.
您可以通过构造函数设置默认值,如下所示.
// parent
public class A {
private int value = 0;
public A( int initialValue ) {
value = initialValue;
}
public void print() {
System.out.println(value);
}
}
// child class
public class B extends A {
public B() {
super( 1 );
}
}
此外,在大多数情况下,如果您避开受保护的字段,您的生活将会更加轻松.
受保护的字段打开您的数据以直接访问和修改其他类,其中一些您可能无法控制.较差的封装可能允许错误并抑制修改.正如Java tutorials on access control中所建议的那样:
“Use the most restrictive access level that makes sense for a particular member. Use private unless you have a good reason not to.”