例子:
class FatherClass {
private int age;
}
class SonClass extends FatherClass{
public void lookFatherAge(){
System.out.println(age);
}
}
public class Main{
public static void main(String [] args){
SonClass son = new SonClass();
son.lookFatherAge();
}
}
像上面这样写,会报错
error: age has private access in FatherClass System.out.println(age);
如果将 private 限制改为 protected 限制,子类是可以直接访问父类属性。
但一般不建议这样做,因为protected 扩大了属性的暴露范围,使得同一个包的其它类也可以访问到该属性。
一般可以改为下面这种写法,提供 public 修改或访问 age 属性:
class FatherClass {
private int age;
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
}
class SonClass extends FatherClass{
public void lookFatherAge(){
System.out.println(getAge());
}
}
public class Main{
public static void main(String [] args){
SonClass son = new SonClass();
son.setAge(18);
son.lookFatherAge();
}
}