覆盖私有方法的缺陷
Posted 衣带渐宽终不悔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了覆盖私有方法的缺陷相关的知识,希望对你有一定的参考价值。
在学习多态的时候,发现一个问题:父类引用指向子类对象的时候,该引用可以调用父类中的私有方法:
package music; public class PrivateOverride { private void f() { System.out.println("private f()"); } public static void main(String[] args) { PrivateOverride po = new Derived(); po.f(); } } class Derived extends PrivateOverride { //public void f() { System.out.println("public f()"); } }
最后的打印结果是:
private f()
无法理解这是怎么回事,不是说好的动态绑定的么,如果在运行的时候发现调用父类私有方法的是指向子类对象的父类引用,该方法应该是不能被调用的啊
以上是关于覆盖私有方法的缺陷的主要内容,如果未能解决你的问题,请参考以下文章