상위 클래스 메서드가 특정 예외를 throw하는 경우 예외를 throw하지 않고 이를 재정의할 수 있습니다.
예
다음 예제에서 수퍼 클래스의 sampleMethod() 메서드는 FileNotFoundException 예외를 throw하고 sampleMethod() 메서드는 예외를 전혀 throw하지 않습니다. 그래도 이 프로그램은 오류 없이 컴파일되고 실행됩니다.
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