상위 클래스 메서드가 특정 예외를 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