如果父类中的某个方法“throws Exception”,我们能否在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
广告