加在异常上面的限制

覆写方法的时候,你只能抛出这个方法在基类中的版本所声明的异常。这是一个有用的限制,因为同基类打交道的代码能自动地同它的派生类,包括它抛出地异常打交道。异常方面的限制对构造函数不起作用。你可以从stormyInning看出,派生类的构造函数根本不看基类抛出的是什么类型的异常,它只会根据它自己的需要抛出异常。然而,由于派生类的构造函数总是会以这样或那样的形式调用基类的构造函数(这里调用的是默认的构造函数),派生类的构造函数必须在异常说明中声明,它有可能会抛出其基类构造函数所抛出的异常。注意,派生类的构造函数不能捕获任何由基类构造函数抛出的异常。

«1»