谁能详细解释一下下面这段代码,小弟不胜感激Class B{ 
   void method()
   {…};
}
Class A extends B { 
   void method()
   {…};
}
   
B b = new A(); 
b.method();

解决方案 »

  1.   

    B是一个父类,并且有一个method()方法
    A类则继承了B类,然后也继承了method()方法,这里也有可能重写了该方法然后使用B类的子类来声明B类变量
    最后执行变量b包含的mehtod方法,也就是A类中写的方法
    这里可以说,使用的是B中方法的名字,但是实际执行的却是A中继承的方法名中的代码,好像有点绕~~这是面向对象的基本知识
      

  2.   

    面向对象的override概念啊.
    调用的实际上是Class A中的method,而不是B中的
      

  3.   

    关键是new后边的什么,
    调用的就是谁的方法
      

  4.   

     
    这和动态绑定有关吧,换句话说,如果方法是final的,那就会调用B的方法了
      

  5.   

    调用的是子类的方法
    就是A中的method()方法