对于重写方的法来说,不能抛出新的异常或者比被重写方法声明的异常范围更大的异常。
但是可以抛出更小或者不抛出异常。
这个问题涉及到了多态, 如果其他类调用这个子类方法构成了多态,
如果你定义多态传递的是父类对象,而调用的父类方法没有声明异常,则程序员主观认为没有异常发生,则不会try也不会throws抛出异常.
而如果你传递的是子类子对象,调用子类覆盖后的方法刚好抛出了个异常,而没有进行try也没有进行throws,
编译就会报错,这就是最大的问题.
解决思路就是:子类重写父类的方法时声明抛出异常不能比父类范围大 |