의 메소드를 오버라이드 (override) 할 수 없습니다때문에이 코드는 컴파일되지 않는 이름 충돌
import java.util.List;
class A {
void foo(List l) { }
}
class B extends A {
void foo(List<?> l) { }
}
그러나, 다음과 같은 코드를 컴파일 (D에서 푸 C에서 foo는 무시). 왜? 목록 <> 목록에서 유래하지만, 첫 번째 예제는 컴파일되지 않는 이유가 아닌 다른 방법으로하는 주위에 있기 때문에
class C {
void foo(List<?> l) { }
}
class D extends C {
void foo(List l) { }
}
질문을 쉽게 대답 할 수 있도록 컴파일 오류를 게시하십시오. –
OK 메시지는 다음과 같습니다. B의 name clash foo (java.util.List >)와 A의 foo (java.util.List)는 동일한 삭제 기능을 갖지만 다른 버전은 모두 무시하지 않습니다. – Gmacar