글
부모 클래스의 메소드를 자식 클래스에서 overriding 할 때에 있어서, throws 가 적용된 메소드의 경우를 살펴보겠습니다. 먼저, checked Exception 의 경우에 대해서 살펴보겠습니다.
부모 클래스에서 throws 구문이 없다면, 자식 클래스에서는 Exception 을 throws 할 수 없습니다.
class Super{
public void method(){
}
}
class Sub extends Super{
public void method() throws Exception{ // 잘못된 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 throws 구문을 없앨 수 있습니다.
class Super{
public void method() throws Exception{
}
}
class Sub extends Super{
public void method(){ // 올바른 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 더 상위의 Exception 을 쓸 수 없습니다.
class Super{
public void method() throws ReflectionException{
}
}
class Sub extends Super{
public void method() throws Exception{ // 잘못된 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 더 하위의 Exception 을 쓸 수 있습니다.
class Super{
public void method() throws Exception{
}
}
class Sub extends Super{
public void method() throws ReflectionException{ // 올바른 방식
}
}
그렇다면, unchecked Exception (or Error) 에 대해서도 살펴보겠습니다.
부모 클래스에서 throws 구문이 없다면, 자식 클래스에서는 Exception 을 throws 할 수 있습니다.
class Super{
public void method(){
}
}
class Sub extends Super{
public void method() throws RuntimeException{ // 올바른 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 throws 구문을 없앨 수 있습니다.
class Super{
public void method() throws RuntimeException{
}
}
class Sub extends Super{
public void method(){ // 올바른 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 더 상위의 Exception 을 쓸 수 있습니다.
class Super{
public void method() throws ArithmeticException{
}
}
class Sub extends Super{
public void method() throws RuntimeException{ // 올바른 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 더 하위의 Exception 을 쓸 수 있습니다.
class Super{
public void method() throws RuntimeException{
}
}
class Sub extends Super{
public void method() throws ArithmeticException{ // 올바른 방식
}
}
부모 클래스에서 throws 구문이 있다면, 자식 클래스에서는 다른 종류의 Exception 을 쓸 수 있습니다.
class Super{
public void method() throws ArithmeticException{
}
}
class Sub extends Super{
public void method() throws ArrayIndexOutOfBoundsException{ // 올바른 방식
}
}
'4.1) OCJP > 관련 이론 및 문법' 카테고리의 다른 글
관련 이론 및 문법 - final (0) | 2016.03.05 |
---|---|
관련 이론 및 문법 - Boolean 클래스 (0) | 2016.03.02 |
관련 이론 및 문법 - Collections 클래스 (0) | 2016.02.28 |
관련 이론 및 문법 - ArrayList 클래스 (0) | 2016.02.28 |
관련 이론 및 문법 - 인스턴스 변수로 접근할 수 있는 멤버의 범위 (0) | 2016.02.24 |
관련 이론 및 문법 - Locale 클래스 (0) | 2015.09.09 |
관련 이론 및 문법 - do ~ while (0) | 2015.09.09 |
관련 이론 및 문법 - Short Circuit Evaluation (0) | 2015.09.09 |
관련 이론 및 문법 - 서식 지정 출력 (0) | 2015.09.09 |
관련 이론 및 문법 - Console 클래스 (0) | 2015.09.09 |
RECENT COMMENT