Java中继承的私有方法

pei*_*ang 4 java inheritance private-methods

我对在继承中使用私有方法感到困惑,例如:

public class A {
    private void say(int number){
        System.out.print("A:"+number);

    }
}

public class B extends A{
    public void say(int number){
        System.out.print("Over:"+number);
    }
}

public class Tester {
    public static void main(String[] args) {

        A a=new B();
        a.say(12);

    }
}
Run Code Online (Sandbox Code Playgroud)

基于上面的代码,我感到困惑的私有方法的继承,是继承了私有方法class AB?或者两个类中的say方法完全不相关?由于代码有当它在main()方法运行错误,好像class B不能调用从私有方法class A.

nhg*_*rif 8

如果您希望子类可以访问需要保留的超类方法private,那么protected就是您要查找的关键字.

  • Private 只允许包含该成员的类访问该成员.
  • Protected 允许在类及其所有子类中访问该成员.
  • Public 允许任何人访问该成员.