派生类如何调用基类的私有方法?

2023-12-10

public class PrivateOverride {  

    private void f() {  
        System.out.println("private f()");  
    }
}  

public class Derived extends PrivateOverride {  

    public void f() {                         //this method is never run.
        System.out.println("public f()");     
    }  
}  

public static void main(String[] args) {

    // instantiate Derived and assign it to 
    // object po of type PrivateOverride.
    PrivateOverride po = new Derived();  

    // invoke method f of object po.  It
    // chooses to run the private method of PrivateOveride
    // instead of Derived
    po.f();                         
  }  
}  

所以,这段代码的输出是private f()。现在,我的脑海中出现了一个问题:如何才能po这是一个对象Derived类调用私有方法私有覆盖它的基类是哪个?


因为你定义了 main 方法PrivateOverride班级。如果将 main 方法放在派生类中,它将无法编译,因为.f()那里将不可见。

po.f() 调用PrivateOverride类不是多态性,因为f() in PrivateOverride类是private, so f() in Derived类未被覆盖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

派生类如何调用基类的私有方法? 的相关文章

随机推荐