黑马程序员技术交流社区

标题: 接口里的方法有异常,子类实现接口后,重写方法可以不抛吗? [打印本页]

作者: 李彦来    时间: 2014-10-12 23:45
标题: 接口里的方法有异常,子类实现接口后,重写方法可以不抛吗?
public interface BusinessService {
        void saveCustomer(Customer c)throws Exception;
}
public class BusinessServiceImpl implements BusinessService {//
           public void saveCustomer(Customer c) {//重写的方法可以不抛异常吗?
}
这么写编译不会报错!为什么啊?
作者: shijianws    时间: 2014-10-13 06:14
可抛,可不抛,不能抛出比父类更多异常,但是父类不抛的子类覆写一定不能抛
作者: yueyazhishang    时间: 2014-10-14 11:18
异常处理有两种方式,其一是向上抛出让调用者处理,其二是自行处理,也就是些try catch块进行处理。
作者: 付博    时间: 2014-10-16 15:45
我觉得是一个类在实现接口或继承类,进行方法覆盖的时候可以抛出原方法的异常、原方法异常的子集、也可以不抛出异常,或者runtime异常及其子孙类异常(因为此类异常可以不捕获、不抛出)。编译是可以通过的,是否抛出异常取决于调用者。
作者: sugar    时间: 2014-10-16 16:18
不抛,就得try
作者: 颜仔    时间: 2014-10-16 17:20
子类实现接口方法时,如果没有异常抛出,子类也一定不能抛,子类方法如果有异常,必须进行try处理。
作者: 潘杰    时间: 2014-10-17 23:30
父类如果声明抛出就可以抛,如果没声明那么子类继承时只能try,不能抛




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2