为什么覆盖的方法不能抛异常?
例如我在Thread类里重写了run()方法之后, 不能在run()方法后面抛异常.  run()throws Exception是错误的!
请赐教谢谢各位~

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ABC123CBA321】截止到2008-07-22 17:26:36的历史汇总数据(不包括此帖):
    发帖的总数量:29                       发帖的总分数:615                      每贴平均分数:21                       
    回帖的总数量:26                       得分贴总数量:2                        回帖的得分率:7%                       
    结贴的总数量:20                       结贴的总分数:510                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:9                        未结的总分数:105                      
    结贴的百分比:68.97 %               结分的百分比:82.93 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    在子类中一个重写的方法只能抛出父类声明过过的异常或者异常的子类。但是重载并不受这点的限制,所以如果子类中有一个方法完全与父类中名称和参数相同,那么它只能抛出父类中声明过的异常或者异常的子类。
        在这里需要完全区分开重载与重写的区别。
    重载是指在一个类中有两个或者两个以上具有相同方法名的方法,称之为重载。重载方法只能通过不同的参数类型和参数顺序进行重载,不能通过改变方法的返回值进行重载。(注意一点,重载的方法可以具有不同的返回类型)
        重写方法是指重新写一个方法覆盖原有的方法,冲写要求重写后的方法与原始方法有完全相同的名称,包括返回类型。(那么注意一点,经static修饰的方法是不能够被重写的)。 也许是设计规则的时候出于安全或者什么其它方面的考虑,还需要高手解答。