public class A{
void process() throws Exception{
throw new Exception();
}
public static void main(String[] args) {
A a = new B();
a.process();
}
}
class B extends A{
void process(){
System.out.println("B ");
}
}
这道题的输出是什么?有谁能讲讲原理吗?

解决方案 »

  1.   

     A a = new B();
    父类引用指向子类对象你可以去看博客专栏,专门的去了解,论坛上说不清楚的
    http://zangweiren.blog.51cto.com/412366/94387
      

  2.   

    http://www.cnblogs.com/zxsoft/archive/2007/08/18/860461.html
      

  3.   

    main方法加上throws Exception,然后输出结果是B
      

  4.   

    重载可以有,父类的异常子类要进行处理,另外new的实例是B,因此优先执行B中的方法,如果子类方法不一样,则执行父类的方法。
    记住:类的示例就是对象
      

  5.   

    放到IDE里面执行下看看不就行了。然后debug看看执行流程。
      

  6.   

    最后应该是输出B的,因为 A a = new B();实现了B的对象