class Parent{
private void method1(){
System.out.println("parent's method1()");
}

public void method2(){
System.out.println("parent's method2()");
method1();
}
}class Child extends Parent{
public void method1(){
System.out.println("child's method1()");
} public static void main(String[] args){
Parent p = new Child();
p.method2();
}
}为什么现在运行结果是:
parent's method2()
parent's method1()而将Parent中的method1()方法的访问权限改为public后是:
parent's method2()
child's method1()运行环境jdk5,谢谢!

解决方案 »

  1.   

    改成public后override了,动态绑定
      

  2.   

    改成public后override了,这个比较好理解.但是改为private后也是动态绑定啊,为什么不调用子类的方法而调用父类的呢?
      

  3.   


     believefym(暮色,miss,迷失,miss)
     lip009(深蓝忧郁) 说的很清楚了。还有啊,楼主的题目叫做---“有关多态方法调用的问题”这个是“多态”的问题吗?