如题,以下代码为什么会打印出 Father ,而不是 Son请解释一下,谢谢class Father{
    private String runNow(){
        return "Father";
    }    static class Son extends Father{
        public String runNow(){
            return "Son";
        }
    }    public static void main(String args[]){
        Father test = new Son();
        System.out.println(test.runNow());
    }
}

解决方案 »

  1.   

    Father中的runNow()是private的,private无法被子类继承,无法被重写。
      

  2.   

    内部类能够访问外部类中的private成员属性和方法,既然子类能访问父类的方法,难道就不能继承,实现多态吗?
      

  3.   

    Father test = new Son();test.runNow();为什么上边的不直接调用子类的runNow方法呢为什么只有重写了父类的方法才能调用阿
      

  4.   

    Father test = new Son(); 
    System.out.println(test.runNow()); 
    打印FartherFather test = new Son(); 
    System.out.println(test.runNow()); 
    打印Son原因二楼已经提到了.加一句: 即使真能重写private的方法,也毫无意义, 因为private对于其他类是不可见的.