2012-02-27 2 views
0

인터페이스 상속 실험과 발견이 :이상한 예외, JDK 6.0.29 버그?

interface String{} 
interface Object{} 
interface Exception{} 
interface Integer extends String, Object, Exception{} 

public class Test implements Integer{ 
    public static void main(String[] args) { 
     System.out.println("Test"); 
    } 
} 

가 컴파일하지만 런타임에 "main" java.lang.NoSuchMethodError: main 던져이야? 주요 메소드 서명을해야하기 때문이다

+0

어떻게 실행하나요? 'Test.class'와 같은 디렉토리에 있습니까? –

답변

7

:

public static void main(java.lang.String[] args) { 

당신은 당신의 문자열 인터페이스의 배열을 가져옵니다

public static void main(String[] args) { 

쓰기 때문에 서명은

+0

글쎄, 비록 내가 문자열 인터페이스에 문제가 남아 있다고해도 – 4lex1v

+0

문자열 인터페이스를 주석 처리 할 필요는 없다. 그냥 (위의 명시 적 java.lang.String 함께) 위의 않았다 주 메서드를 컴파일하고 성공적으로 컴파일하고 실행합니다 –

+0

그 작품 =) 추측 내가 프로그래밍에 너무 늦은 것 같아 – 4lex1v

3

당신이 칭찬하면 다른 경우 당신의 부적합한 String 인터페이스에서 Test 클래스는 최종 클래스 인 java.lang.String을 확장하려고 시도합니다. 수 없습니다. 확장하십시오. 그리고 클래스 대신을 확장하기 위해 Integer와 같은 인터페이스를 요청하면 컴파일러 오류가 발생합니다.

이 실험에 대해서는 아무 것도 없습니다. 그 중 어느 것도 실제 코드로 바뀌어서는 안됩니다.