子类可以重写时选择不在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