본문 바로가기
Java Programming/Java

AbstractMethodError 을 강제로 발생시켜보자

by 폴리글랏 2020. 11. 25.

대부분 AbstractMethodError은 컴파일러가 컴파일 하기전에 명시적으로 알려주기 때문에 발생할 일이 없다.

 

하지만 이것은 이클립스같은 통합개발환경을 사용할 때의 일일뿐 별도로 컴파일을 하거나 실행한다면

 

발생할 일이 있을 것이다.

 

이런 경우를 대비하여 강제로 발생시켜보자.

 

Parent 인터페이스와 그걸 구현하는 Child클래스 그리고 실행할 AbstractTest 클래스를 작성해보자

 

편의를 위해 패키지는 모두 naver.kin으로 작성하였다.

package naver.kin;

public interface Parent {
	String test(String s);
}
package naver.kin;

public class Child implements Parent {
	@Override
	public String test(String s) {
		return s;
	}
}
public class AbstractTest {
	public static void main(String[] args) {
		Parent c = new Child();
		System.out.println(c.test("TEST"));
	}
}

이 상태로 실행하게 되면 콘솔에 TEST라는 문자열이 나타나게 된다.

 

이제 Parent 인터페이스의 코드를 변경해보자. 이 과정에서 Child에 오류가 발생하겠지만 무시하고 저장하자.

 

package naver.kin;

public interface Parent {
	int test(String s);
}

 

그러면 Child는 오류가 난 상태로 Parent 인터페이스만 컴파일이 된다.

 

이 상태에서 AbstractTest를 실행해보자.

 

AbstractMethodError가 발생하게 된다.

 

댓글