在继承类中出现了一个和基类一样名字的私有方法,那么,创建一个继承类对象op后
,用该对象调用f(),是不是仅仅隐藏了基类方法而已!向上转型根本不会发生?我的
理解是因为private方法根本不是基类接口.大家讨论讨论.class WithFinals {
  private void f() {
    System.out.println("WithFinals.f()");
  }}class OverridingPrivate extends WithFinals {
  private void f() {
    System.out.println("OverridingPrivate.f()");
  }
}class Test{
  public static void main(String[] args) {
    OverridingPrivate op = new OverridingPrivate();
    op.f();  //就这儿
    }
}

解决方案 »

  1.   

    所有的父类的都被继承,包括private
    只是private的不会被override
      

  2.   

    OverridingPrivate op = new OverridingPrivate();
        op.f();  //就这儿
    ---------------
    这样的写法根本不存在转不转型的问题,也不存在多态的问题
    除非你的本意是WithFinals op = new OverridingPrivate();
      

  3.   

    OverridingPrivate op = new OverridingPrivate();
        op.f();  //就这儿这里不对,因为你的f方法被声明为private,所以在外部根本无法调用,你又怎么可能op.f()这样去调用呢????