当覆盖一个函数的时候,子类不能声明抛出比父类的版本更多的异常。因为我们有可能拿着子类的对象当作父类的对象来看待(向上造型),在通过父类的变量去调用子类的函数的时候,我们要处理好所有的异常。
在子类的构造函数中,必须声明父类可能抛出的全部异常。构造的过程当中,会自动调用父类的构造,所以父类的构造所会抛的所有的异常都需要声明,当然你也可以加自己的异常。
当覆盖一个函数的时候,子类不能声明抛出比父类的版本更多的异常。因为我们有可能拿着子类的对象当作父类的对象来看待(向上造型),在通过父类的变量去调用子类的函数的时候,我们要处理好所有的异常。
在子类的构造函数中,必须声明父类可能抛出的全部异常。构造的过程当中,会自动调用父类的构造,所以父类的构造所会抛的所有的异常都需要声明,当然你也可以加自己的异常。