私有成员归父类独享,子类无法直接访问;可通过父类提供的protected或public的getter/setter方法间接访问,体现封装性。
在Java中,父类的私有成员不能被子类直接访问。这是由Java的访问控制机制决定的。
使用 private 修饰的字段或方法只能在定义它们的类内部访问。即使子类继承了父类,也无法直接访问这些私有成员。
is.privateField 或 super.privateField 访问都会编译报错如果需要让子类能获取或修改父类的私有数据,可以通过以下方式提供间接访问:
例如:
class Parent {
private int value = 100;
protected int getValue() {
return value;
}
}
class Child extends Parent {
public void printValue() {
System.out.println(getValue()); // 正确:通过受保护的方法访问
}
}
有些人认为“子类继承了父类的所有东西”,所以应该能访问私有成员。这种理解不准确。