this is in b
this is in b

解决方案 »

  1.   

    两个func()都调用子类的方法?不先调用超类的方法吗?
      

  2.   

    超类已经被重载,怎么再调用呢?使用a.func()调用结果就是this is in a
      

  3.   

    Java中多态的实现与C++中是不同的。C++分静态绑定和动态绑定,Java中则全是动态绑定。因此第二个例子中,如果:
    A a=new B1();
    a.func();
    还是输出:this is in b方法重载时默认不会调用父类的方法。要调用父类的方法,必须显示说明:
    super.func();