如果父類中的某個方法“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
廣告