Nếu phương thức siêu lớp ném ra một ngoại lệ nào đó, phương thức trong lớp con sẽ không ném kiểu siêu của nó.
Ví dụ
Trong ví dụ sau, phương thức readFile () của lớp siêu ném ngoại lệ FileNotFoundException và phương thức readFile () của lớp con ném ra một IOException, là kiểu siêu của FileNotFoundException.
import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Scanner; abstract class Super { public String readFile(String path)throws FileNotFoundException { throw new FileNotFoundException(); } } public class ExceptionsExample extends Super { @Override public String readFile(String path)throws IOException { //method body ...... } }
Lỗi thời gian biên dịch
Khi biên dịch, chương trình trên cung cấp cho bạn kết quả sau -
ExceptionsExample.java:13: error: readFile(String) in ExceptionsExample cannot override readFile(String) in Sup public String readFile(String path)throws IOException { ^ overridden method does not throw IOException 1 error