可是他调用的却是Parent ccc = new Child();我觉得其实ccc是Child类.不是说是运行时绑定吗?其实是Child类的ccc被当做Parent类用,本质上还是Child类.他应该是运行时绑定吗?

解决方案 »

  1.   

    注意overload和overwrite的区别
    overload是在编译时区分调用哪个方法
    overwrite是在运行是决定调用哪个方法。
    你的代码不是overwrite。
      

  2.   

    wangtaoyy(嘉陵江) :
    请解释什么情况是overload,什么是overwrite?
      

  3.   

    overwrite必须有相同的参数和返回类型,不能是private
    overload必须有不同的参数,返回类型可以不同
      

  4.   

    overwrite是子类覆盖父类的方法
    如awt里面常见的paint(Graphics g)
    overload是对同一方法名提供不同的实现
    如System.out.println可以带不同的参数
      

  5.   

    应该是override. not overwrite.另外,这里根本不存在多态,由于父类的方法是private的。
    所以,运行时绑定也就不存在了。
      

  6.   

    laotangseng:将程序修该如下,就可得到你要的结果:
    public class Parent {    public Parent() {
        }
        public static void main(String args[]) {
            Parent p = new Parent();
            Parent ccc = new Child();
     
            p.method();
            ccc.method();
     
        }
        public void method() {//½«private ¸ÄΪpublic 
            System.out.println("this is father");
        }
    }
    class Child extends Parent {
        public void  method() {//½«int ¸ÃΪ void 
            System.out.println("this is child");
    //      return 0;
        }
    }