자바에서 재정의 Throwable 방법

조니 페퍼로니 :

첫째, 내 나쁜 영어 죄송합니다. 질문 : 자바의 아래의 예와 같이 서브 클래스의 오버라이드 (override) 방법에서의 RuntimeException을 던질 나야 수 왜 확인이 끝난 예외를 발생시키는 방법을 확장하는 서브 클래스가있는 경우 :

public class A {

    public void doSomething() throws FileNotFoundException {
        System.out.println("doing something...");
    }
}

그리고...

public class B extends A {
    public void doSomething() throws RuntimeException { // <- my question
            System.out.println("doing something here too...");
    }
}
톰 Hawtin의 - tackline :

어떤 방법을 던질 수 RuntimeException또는 Error- 확인되지 않은 예외 클래스를 기반으로. 그래서는 throws RuntimeException아무것도 무관하다.

좁은 throws 절에 당신은 방법을 대체 할 수 있습니다. throws FileNotFoundException예외를 슬로우 할 필요가 방법을 의미하지는 않습니다. 기본 클래스의 방법을 던질 수있다; 도출 방법에있어서,이 경우하지 않는다.

당신은 기본 클래스에 대한 참조를 클라이언트 코드가 기대되지 않을 것이기 때문에 throws 절 넓힐 수 없습니다.

이 유사하다 공변 반환 형식 이 파생 클래스 / 인터페이스 메서드의 반환 형식을 좁힐 수 있습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=278665&siteId=1