覆盖私有方法

Nov*_*Cai 3 java overriding

我正在阅读"用Java思考"并且有疑问.在"重用类"一节的"最终和私有"一节中,它说私有方法不能被覆盖.但是,我在机器上试了一下.它实际上可以被覆盖.

这是代码

class Amphibian {
     private void print() { System.out.println("in Amphibian"); }
}

public class Frog extends Amphibian {
     public void print() { System.out.println("in Frog"); }

     public static void main(String[] args) {
          Frog f = new Frog();
          f.print();
     }
}
Run Code Online (Sandbox Code Playgroud)

Kep*_*pil 12

你没有覆盖它,你只是用一个同名的新方法隐藏它.

如果您没有创建新print()方法,那么您的Frog课程就没有.

  • 确切地说,使用`@Override`注释,你会得到一个错误:) (2认同)