子类可以重写时选择不在Java中引发异常吗?

如果超类方法引发某些异常,则可以覆盖它而不引发任何异常。

示例

在下面的示例sampleMethod()中,超类的方法将引发FileNotFoundException异常,并且该sampleMethod()方法完全不会引发任何异常。该程序仍然可以编译并执行,没有任何错误。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super {
   public void sampleMethod()throws FileNotFoundException {
      System.out.println("Method of superclass");
   }
}
public class ExceptionsExample extends Super {
   public void sampleMethod() {
      System.out.println("Method of Subclass");
   }
   public static void main(String args[]) {
      ExceptionsExample obj = new ExceptionsExample();
      obj.sampleMethod();
   }
}

输出结果

Method of Subclass