代码如下:
interface A{void x();}
class B implements A{public void x(){}public void y(){}}
class C extends B{public void x(){}}
public class ex008{
  public static void main(String[] args){
    java.util.List<A> list = new java.util.ArrayList<A>();
    list.add(new B());
    list.add(new C());
    for(A a:list){
      a.x();
      a.y();
    }
  }
}
求运行结果,为什么?详细解释

解决方案 »

  1.   

    a.x()中的x()是B中实现的方法,a.y()调用的是C中实现的方法~这个是似乎就是多态,看看多态就知道了
      

  2.   

    楼上说的对,这个问题不是一句话就能说通的,用emule下载软件去下载(马士兵)的录像看看关于多态的,讲的比较透彻的,我就听过之后彻底明白了
      

  3.   

    http://www.verycd.com/topics/93279这是链接地址
      

  4.   

    不好意思,没注意看C并没有重写B中的y()方法,所以a.y()执行的还是B中的y(),总之看看多态就好了