这是我的代码块。
class Alpha{
public void Gamma() {
System.out.println("Alphas");
}
}
class Beta extends Alpha{
public void Gamma() throws Exception //Line 1
{
try {
System.out.println("Betas");
} catch(Exception e) {
System.out.println("Exception caught");
} finally {
System.out.println("xfg");
}
}
public static void main(String[] args) throws Exception {
Alpha g = new Beta();
g.Gamma();
}
}
这段代码无法编译,因为我在Line1中添加了“ throws”。
编译器抱怨重写的方法不能引发异常。
为什么这样 ?。
为什么覆盖的方法不能引发异常?
因为我可以通过在子类的实现中添加n行代码来覆盖基类中的方法。
这些添加的代码会引发异常,所以为什么我不能在重写的方法中使用“引发”?