先直接来上答案:父类的变量和方法全部被子类继承,但是私有成员(方法和变量)不能被子类直接看到,可以理解为无权访问,因此子类不能直接调用继承过来的父类的私有变量和方法。如果子类找到父类中能够访问该私有变量和方法的公共方法就可以访问继承到的父类的私有成员。
假如父亲有一个放在密码箱的宝石(私有成员),儿子自然可以继承过来,但是如果父亲没有提供儿子密码(可以访问私有成员的公共方法),儿子是无法拿到宝石的(没有权限访问)。
代码示例:
public class Fu{
private int num = 100;//私有成员,只能在父类内部使用。
private void method(){
System.out.println("私有成员方法");
}
}
public class Zi extends Fu{
}
public class Demo {
public static void main(String[] args) {
Zi z = new Zi();
System.out.println(z.num);// 编译错误
z.method();// 编译错误
}
}